ThinkAlexandria / window-manager / WindowManager


type alias WindowLayout =
{ width : Basics.Int
, height : Basics.Int
, top : Basics.Int
, left : Basics.Int
, minWidth : Basics.Int
, minHeight : Basics.Int
, resizeXFence : FenceRule
, resizeYFence : FenceRule 
}

initWindowLayout : { width : Basics.Int, height : Basics.Int, top : Basics.Int, left : Basics.Int, minWidth : Basics.Int, minHeight : Basics.Int } -> WindowLayout

updateWindowDeltaX : WindowLocation -> Position -> Basics.Int -> WindowLayout -> WindowLayout

updateWindowDeltaY : WindowLocation -> Position -> Basics.Int -> WindowLayout -> WindowLayout

resetWindowResizeFences : WindowLayout -> WindowLayout


type alias Config msg interactionLocation =
{ toMsg : Drag.Msg interactionLocation -> msg
, toInteractionLocation : WindowLocation -> interactionLocation
, windowContainerClass : String
, leftResizeHorizontallyHandleClass : String
, rightResizeHorizontallyHandleClass : String
, upperLeftCornerResizeHandleClass : String
, upperRightCornerResizeHandleClass : String
, lowerLeftCornerResizeHandleClass : String
, lowerRightCornerResizeHandleClass : String
, topResizeVerticallyHandleClass : String
, bottomResizeVerticallyHandleClass : String 
}

viewWindow : Config msg interactionLocation -> WindowLayout -> List (Html msg) -> Html msg

onMouseDownTranslateWindow : Config msg interactionLocation -> Html.Attribute msg


type WindowLocation