All the state of one UI: its tree, fonts, input and the frame being drawn. Create one with
headless or let run_app make it.
Fields
- text: Text_System
- theme: Theme
- root: *Node
- stack: [..] *Node
- frame: int
- size: Vector2
- logical window size
- frame_pool: Flat_Pool
- key_pending: bool
- key_value: u64
- key_name: string
- input: Input_State
- draw: Draw_List
- hover: u64
- Interaction.
- pressed: u64
- focus: u64
- focus_previous: u64
- pressed_button: Mouse_Button
- click_count: int
- last_click_time: float64
- last_click_x: float
- last_click_y: float
- now: float64
- seconds, set by the platform loop
- wants_frame: bool
- Asks for another frame even without input (animation, blinking caret).
- wake_time: float64
- the time of the next frame that is wanted without input (0: none)
- quit: bool
- hooks: UI_Hooks
- outer: *UI_State
- the UI that was current when this one was pushed