Skip to content
ModernUI A DaneTrades developer library

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.controlInputs
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? MuiDrawernew 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

Example Best for
Quick Start Minimal AppWindow + buttons
Showcase trade panel Drawer, dialog, spin edits, slider
Trading dashboard showcase Tabs, table, charts, accordion
ModernUI showcase demo Full control catalog

Library audits: Include/ModernUI/CONTROL_API_EXAMPLE_AUDIT.md (Phase 9) · Include/ModernUI/CONTROL_API_REFERENCE_REVIEW.md (Phase 10).

Related Pages