19. GUI (Dear ImGui)
dasImgui — the daslang binding for Dear ImGui,
organised by area: the boost macro spine, builtin widgets, hot-reload + transport,
and the testing toolkit. Built-in Dear ImGui functions (imgui::*) are not
duplicated here; consult the upstream Dear ImGui documentation for the C++ surface.
This documents the v2 surface — the legacy imgui/imgui_boost (v1) module
is registered but undocumented.
Start with Application lifecycle: one application structure for standalone, live-reload, and headless execution.
- 19.1. Boost macro layer
- 19.1.1. Boost macro layer — DSL for declarative widget composition
- 19.1.2. Boost runtime — widget state structs, registry, and dispatcher
- 19.1.2.1. Type aliases
- 19.1.2.2. Structures
- 19.1.2.3. Per-frame registry
- 19.1.2.4. Path machinery
- 19.1.2.5. Coroutines
- 19.1.2.6. Window control
- 19.1.2.7. Live commands
- 19.1.2.8. Synthetic input
- 19.1.2.9. Debug logging
- 19.1.2.10. Memory debugging
- 19.1.2.11. Snapshot transform
- 19.1.2.12. JSON serialization
- 19.2. Builtin widgets
- 19.2.1. Built-in widgets — inputs, selection, color, plots, output
- 19.2.2. Built-in containers — windows, child regions, tabs, menus, popups
- 19.2.3. ID stack — push/pop, scoped, hashing
- 19.2.4. Layout helpers — splits, columns, docking, spacing
- 19.2.5. Style helpers — colors, vars, push/pop, themes
- 19.2.6. Icon set
- 19.3. Live reload and transport
- 19.4. Testing toolkit
- 19.4.1. Playwright — block-form test harness for daslang-live + dasImgui apps
- 19.4.2. Visual aids — tutorial-mode overlays, mouse trail, narration, key HUD
- 19.5. External types
- 19.6. Internal binding families
- 19.6.1. Render helpers
- 19.6.2. Vertex shading
- 19.6.3. Layout & item sizing
- 19.6.4. Item hit-test & geometry
- 19.6.5. Item assembly (ItemAdd + ButtonBehavior)
- 19.6.6. Behavior-flag buttons
- 19.6.7. Axis layout primitives (splitter & scrollbar)
- 19.6.8. Tree-node behavior
- 19.6.9. Separator & low-level text
- 19.6.10. Combo internals
- 19.6.11. Popups, tooltips & menus
- 19.6.12. ID stack seed & override
- 19.6.13. Focus scope & activation
- 19.6.14. Item flags
- 19.6.15. Logging & capture