Package limn.scene
package limn.scene
Widget tree, event dispatch (coalescing + bubbling), focus and the
measure/layout pass.
-
ClassDescriptionLayout 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 isCanvas.contentScale(), applied downstream in the backend; the two multiply, in that order, and must never be conflated).Rolling per-frame performance samples theScenecollects 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.