midio_ui/gui/dock

Basic sock panel where one can dock elements to each side, gradually shrinking the available space that is used to place the next child. Note that the last child can be made to fill the remaining space by not assigning it a dock value.

Types

DockDirection {...}{.pure.} = enum
  Default, Left, Top, Right, Bottom
Docking = tuple[elem: Element, dir: DockDirection]
DockChildren = seq[Docking]

Procs

proc setDocking(elem: Element; dir: DockDirection): void {...}{.raises: [], tags: [].}
proc getDocking(elem: Element): Option[DockDirection] {...}{.raises: [KeyError], tags: [].}
proc createDock(props: ElemProps; children: seq[Element]): Element {...}{.raises: [],
    tags: [TimeEffect].}
proc createDock(dockings: seq[Docking]; elemProps: ElemProps = ElemProps()): Element {...}{.
    raises: [], tags: [TimeEffect].}
proc createDock(children: varargs[Docking] = @[]): Element {...}{.raises: [],
    tags: [TimeEffect].}
proc createDock(margin: Thickness[float]; children: varargs[Docking] = @[]): Element {...}{.
    raises: [], tags: [TimeEffect].}
proc createDock(elemProps: ElemProps; children: varargs[Docking] = @[]): Element {...}{.
    raises: [], tags: [TimeEffect].}
proc left(element: Element): Docking {...}{.raises: [], tags: [].}
proc top(element: Element): Docking {...}{.raises: [], tags: [].}
proc right(element: Element): Docking {...}{.raises: [], tags: [].}
proc bottom(element: Element): Docking {...}{.raises: [], tags: [].}