Types
BlockBox = ref object of CSSBox input*: LayoutInput state*: BoxLayoutState
BorderStyleSpan = object start*: CSSBorderStyle send*: CSSBorderStyle
Bounds = object a*: BoundsPart mi*: BoundsPart
BoundsPart = array[DimensionType, Span]
BoxLayoutState = object offset*: Offset size*: Size intr*: Size marginTodo*: Span exclusionsHead*: Exclusion exclusionsTail*: Exclusion pendingFloatsHead*: PendingFloat pendingFloatsTail*: PendingFloat firstBaseline*: LUnit baseline*: LUnit marginOutput*: LUnit yshift*: LUnit maxFloatHeight*: LUnit clearOffset*: LUnit merge*: CSSBorderMerge baselineSet*: bool marginResolved*: bool
BoxRenderState = object positioned*: bool offset*: Offset clipBox*: ClipBox
CSSAbsolute {.acyclic.} = ref object box*: BlockBox next*: CSSAbsolute
CSSBorder = array[DimensionType, BorderStyleSpan]
CSSBorderMerge = array[DimensionType, bool]
CSSBox = ref object of RootObj parent*: CSSBox firstChild*: CSSBox next*: CSSBox absolute*: CSSAbsolute pseudo*: PseudoElement t*: CSSBoxType keepLayout*: bool positioned*: bool render*: BoxRenderState computed*: CSSValues element*: Element
CSSBoxType = enum cbtElement, cbtAnonymous, cbtText
DimensionType = enum dtHorizontal, dtVertical
InlineBox = ref object of CSSBox state*: InlineBoxState
InlineBoxState = object startOffset*: Offset areas*: seq[Area]
InlineNewLineBox = ref object of InlineBox
InlineTextBox = ref object of InlineBox runs*: seq[TextRun] text*: RefString len*: int
LayoutInput = object bfcOffset*: Offset margin*: RelativeRect padding*: RelativeRect space*: Space bounds*: Bounds marginTodo*: Span pendingFloatsHead*: PendingFloat pendingFloatsTail*: PendingFloat exclusionsHead*: Exclusion exclusionsTail*: Exclusion clearOffset*: LUnit border*: CSSBorder marginResolved*: bool
PendingFloat = ref object offset*: Offset bfcOffset*: Offset space*: Space box*: BlockBox marginOffset*: Offset outerSize*: Size newLine*: bool next*: PendingFloat
RelativeRect = array[DimensionType, Span]
SizeConstraint = object t*: SizeConstraintType u*: LUnit
SizeConstraintType = enum scStretch, scFitContent, scMinContent, scMaxContent, scMeasure
Space = array[DimensionType, SizeConstraint]
Consts
DefaultClipBox = (start: [0, 0], send: [2147483647, 2147483647])
Offset0 = [0, 0]
Procs
proc borderBottomRight(input: LayoutInput; cellSize: Size): Offset {....raises: [], tags: [], forbids: [].}
proc borderTopLeft(input: LayoutInput; cellSize: Size): Offset {....raises: [], tags: [], forbids: [].}
proc bottom(b: CSSBorder): CSSBorderStyle {....raises: [], tags: [], forbids: [].}
proc bottom(s: RelativeRect): LUnit {....raises: [], tags: [], forbids: [].}
proc bottomRight(s: RelativeRect): Offset {....raises: [], tags: [], forbids: [].}
proc getBitmap(box: BlockBox): NetworkBitmap {....raises: [], tags: [], forbids: [].}
proc getImageBitmap(box: BlockBox): NetworkBitmap {....raises: [], tags: [], forbids: [].}
proc left(b: CSSBorder): CSSBorderStyle {....raises: [], tags: [], forbids: [].}
proc left(s: RelativeRect): LUnit {....raises: [], tags: [], forbids: [].}
proc resetState(box: BlockBox) {....raises: [], tags: [], forbids: [].}
proc resetState(ibox: InlineBox) {....raises: [], tags: [], forbids: [].}
proc right(b: CSSBorder): CSSBorderStyle {....raises: [], tags: [], forbids: [].}
proc right(s: RelativeRect): LUnit {....raises: [], tags: [], forbids: [].}
proc sum(rect: RelativeRect): Size {....raises: [], tags: [], forbids: [].}
proc top(b: CSSBorder): CSSBorderStyle {....raises: [], tags: [], forbids: [].}
proc top(s: RelativeRect): LUnit {....raises: [], tags: [], forbids: [].}
proc topLeft(s: RelativeRect): Offset {....raises: [], tags: [], forbids: [].}