Package limn.scene


package limn.scene
Widget tree, event dispatch (coalescing + bubbling), focus and the measure/layout pass.
  • Class
    Description
    Layout constraints handed down the tree (Flutter/Compose style): a widget's measured size must fall inside [minWidth..maxWidth] x [minHeight..maxHeight].
    The size step of a control: a deliberate, hand-tuned design axis, not a scale factor and not a DPI setting (that is Canvas.contentScale(), applied downstream in the backend; the two multiply, in that order, and must never be conflated).
    Rolling per-frame performance samples the Scene collects each frame: frames-per-second, CPU frame time (tick + layout + paint, in ms), input-processing time (ms), and how much of the scene each frame actually repainted.
    A fixed-capacity ring of recent samples (oldest evicted first) exposing the latest value, the windowed average/max, and a copy of the history for a sparkline.
    Edge insets in logical points (padding/margins).
    The direction a subtree lays out in: an inherited design axis, not a transform and not a property of the locale.
    Owns a widget tree bound to one window: queues native input (with coalescing), dispatches events with hit-testing and bubbling, tracks hover, click synthesis and keyboard focus (Tab traversal in layout order), ticks animations and runs the two-phase layout before painting.
    Animation hook, called once per frame while registered.
    SPI for widgets that can scroll their content programmatically: scroll containers (ScrollView), virtualized lists (ListView), overflow strips, popup panels.
    A measured widget size in logical points.
    Appearance of the scene's hover tooltip panel.
    Base of the widget tree.