Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface IGridLayout

Hierarchy

Implemented by

Index

Properties

Readonly cellH

cellH: number

Readonly cellW

cellW: number

Readonly cols

cols: number

Readonly gap

gap: number

Readonly width

width: number

Readonly x

x: number

Readonly y

y: number

Methods

colsForWidth

  • colsForWidth(width: number): number
  • Returns the number of columns for given width.

    Parameters

    • width: number

      -

    Returns number

nest

  • nest(cols: number, spans?: [number, number]): IGridLayout
  • Requests a spans sized cell from this layout (via .next()) and creates and returns a new child GridLayout for the returned box / grid cell. This child layout is configured to use cols columns and shares same gap as this (parent) layout. The configured row span only acts as initial minimum vertical space reseervation, but is allowed to grow and if needed will propagate the new space requirements to parent layouts.

    Note: this size child-parent size propagation ONLY works until the next cell is requested from any parent. IOW, child layouts MUST be completed/populated first before continuing with siblings/ancestors of this current layout.

    // single column layout (default config)
    const outer = gridLayout(null, 0, 0, 200, 1, 16, 4);
    
    // add button (full 1st row)
    button(gui, outer, "foo",...);
    
    // 2-column nested layout (2nd row)
    const inner = outer.nest(2)
    // these buttons are on same row
    button(gui, inner, "bar",...);
    button(gui, inner, "baz",...);
    
    // continue with outer, create empty row
    outer.next();
    
    // continue with outer (4th row)
    button(gui, outer, "bye",...);

    Parameters

    • cols: number

      columns in nested layout

    • Optional spans: [number, number]

      default [1, 1] (i.e. size of single cell)

    Returns IGridLayout

next

nextSquare

  • Returns a squared LayoutBox based on this layout's column width. This box will consume ceil(columnWidth / rowHeight) rows, but the returned box height might be less to satisfy the square constraint.

    Returns LayoutBox

rowsForHeight

  • rowsForHeight(height: number): number
  • Returns the number of rows for given height.

    Parameters

    • height: number

      -

    Returns number

spansForSize

  • spansForSize(size: ArrayLike<number>): [number, number]
  • spansForSize(w: number, h: number): [number, number]
  • Calculates the required number of columns & rows for the given size.

    Parameters

    • size: ArrayLike<number>

      -

    Returns [number, number]

  • Parameters

    • w: number
    • h: number

    Returns [number, number]

Generated using TypeDoc