ModernUI › Docs › Reference › Controls reference
Controls reference
Use this section when you know the class or helper name and want the exact reference shape: what it does, how to create it, what events it emits, and which options matter.
For app-level behavior, controls should be paired with the Event Bus : assign .Id(...), then route MuiEventData in OnMuiEvent(...).
Reference Groups
Page
Covers
Start here when
Buttons
MuiButton, MuiButtonAction, icon buttons, button rows, button groups
You need action buttons or segmented choices.
Inputs
checkbox, toggle, slider, spin edit, text, combo, radio, date, color
You need user-entered or selected values.
Data views
list, table, tree, row templates, table/list/tree sources
You need rows, columns, selection, or large data surfaces.
Navigation
tabs, accordion, toolbar, menu, context menu
You need page switching or command/navigation surfaces.
Overlays
drawer, dialog, modal, toast, tooltip, overlay layer
You need settings drawers, confirmation modals, or floating feedback.
Display
label, badge, icon, alert, progress, status bar, cards
You need non-input visual UI pieces.
Charts
sparkline, line chart, bar chart, donut, half gauge
You need compact dashboard visuals.
Layout
container, window, panel, scroll, grid, splitter, spacer, form row
You need to arrange controls predictably.
Factory helpers
MuiCreate::..., Mui::..., wrapper structs
You need to know helper names, return types, and argument shape.
Entry shape
Each control entry includes: Purpose , Create it , Events , Common setters , Notes , Example , and Related links back to guides and the Event Bus .
Common build scenarios
Use this when you know the panel you are building but not which reference page to open first.
1. Settings panel
Question
Answer
What controls?
Mui::AppWindow, Mui::Section, Mui::LabeledTextBox / LabeledSpinEdit / LabeledCombo / LabeledCheckbox / LabeledSlider, optional Mui::ButtonRow
How to create?
Factory helpers · LabeledSpinEdit
IDs
risk.control.Id(APP_RISK) (or each wrapper.control) after creation
Events
MUI_EVENT_VALUE_CHANGED, MUI_EVENT_CHECK_CHANGED, MUI_EVENT_SELECTION_CHANGED on inputs; MUI_EVENT_CLICK on buttons
Payload fields
event.Value(), event.Checked(), event.Index(), event.Text() — Event Bus
Setters
Per control on wrapper.control — Inputs
Full example
ModernUI showcase demo · First panel
2. Compact trade panel
Question
Answer
What controls?
AppWindow, Section, ButtonGroup or Buy/Sell buttons, labeled inputs, SimpleTable, StatusRow, toasts
How to create?
Factory helpers · Buttons
IDs
Enum per action; .Id(...) on each interactive control
Events
MUI_EVENT_CLICK, MUI_EVENT_VALUE_CHANGED, MUI_EVENT_CHECK_CHANGED, MUI_EVENT_SELECTION_CHANGED
Payload fields
ControlId() primary router; Value() for spin/slider/presets — Event Bus
Setters
Text, Value, Kind, AccentColor, table via MuiSimpleTable.SetCell
Full example
Showcase trade panel
3. Dashboard with tabs and a table
Question
Answer
What controls?
MuiWindow or AppWindow, Mui::Tabs / TabsFromNames, MuiTableView + MuiTableSource, optional Mui::Grid, stat cards, charts
How to create?
Navigation — Tabs · Data views — Table · Mui::TabsFromNames
IDs
tabs.Id(APP_TABS); table.Id(APP_TABLE)
Events
MUI_EVENT_TAB_CHANGED; MUI_EVENT_SELECTION_CHANGED, MUI_EVENT_TABLE_CELL_CLICK, MUI_EVENT_TABLE_HEADER_CLICK
Payload fields
event.Index() / OldIndex() for tabs; Row(), Col(), Text() for table — Event Bus
Setters
tabs.Selected(root, i); source NotifyChanged() after data edits — Table/list sources
Full example
Trading dashboard showcase
4. Modal confirmation flow
Question
Answer
What controls?
MuiDialog (heap new), MuiModal::Show, optional SetupConfirm
How to create?
MuiDialog · Overlay lifecycle
IDs
dialog.Id(APP_DLG_CONFIRM) before Show
Events
Yes: MUI_EVENT_DIALOG_RESULT (Text() → "yes" / "cancel" / "ok") and MUI_EVENT_CONFIRM (Checked() true/false) on confirm dialogs
Payload fields
Route on ControlId(); read event.Text() and event.Checked() — see dual-event note in overlays reference
Setters
.Title, .Body, .SetupConfirm(NULL, ...) when using event bus only
Full example
Showcase trade panel (OnBuy confirm path) · Drawer/dialogs guide
5. Drawer-based configuration panel
Question
Answer
What controls?
Mui::Drawer, Mui::DrawerSection, checkboxes/spin edits/buttons inside drawer body
How to create?
MuiDrawer — new via Mui::Drawer(w, fromLeft); do not parent.Add(drawer); call drawer.Open(root)
IDs
drawer.Id(APP_SETTINGS_DRAWER); IDs on children inside drawer
Events
MUI_EVENT_DRAWER_STATE (Expanded() open/closed); child CLICK / CHECK_CHANGED / VALUE_CHANGED
Payload fields
event.Expanded() for drawer; standard fields for inner controls
Setters
Open / Close / Toggle; inner control setters as usual
Full example
Showcase trade panel settings drawer · Trading dashboard showcase
Phase 10 scenario audit: Include/ModernUI/CONTROL_API_REFERENCE_REVIEW.md.
Quick lookup
You need…
Page
Button click / MUI_EVENT_CLICK
Buttons
Spin edit, combo, checkbox, slider, date/color
Inputs
Table cell click, list selection, tree expand
Data views
Tabs, menu, dropdown
Navigation
Drawer, dialog, confirm, toast
Overlays
Label, badge, card, progress
Display
Sparkline, donut, gauge
Charts
Window, section, scroll, grid
Layout
Mui::AppWindow, LabeledSpinEdit, ButtonRow
Factory helpers
Examples using this reference
Library audits: Include/ModernUI/CONTROL_API_EXAMPLE_AUDIT.md (Phase 9) · Include/ModernUI/CONTROL_API_REFERENCE_REVIEW.md (Phase 10).
Related Pages