--- a/application/demo_states.c Mon Jun 15 21:16:47 2026 +0200 +++ b/application/demo_states.c Tue Jun 16 17:29:14 2026 +0200 @@ -90,6 +90,42 @@ } } +static void doc_suppress_state1(UiEvent *event, void *doc) { + UiContext *ctx = ui_document_context(doc); + if(event->intval) { + ui_suppress_state(ctx, 1); + } else { + ui_unsuppress_state(ctx, 1); + } +} + +static void doc_suppress_state2(UiEvent *event, void *doc) { + UiContext *ctx = ui_document_context(doc); + if(event->intval) { + ui_suppress_state(ctx, 2); + } else { + ui_unsuppress_state(ctx, 2); + } +} + +static void doc_suppress_state3(UiEvent *event, void *doc) { + UiContext *ctx = ui_document_context(doc); + if(event->intval) { + ui_suppress_state(ctx, 3); + } else { + ui_unsuppress_state(ctx, 3); + } +} + +static void doc_suppress_state4(UiEvent *event, void *doc) { + UiContext *ctx = ui_document_context(doc); + if(event->intval) { + ui_suppress_state(ctx, 4); + } else { + ui_unsuppress_state(ctx, 4); + } +} + static void application_startup(UiEvent *event, void *userdata) { UiObject *obj = ui_window("States Demo"); @@ -117,21 +153,35 @@ ui_frame(obj, .label = "Doc 1", .fill = TRUE, .margin = 10, .padding = 10, .spacing = 10, .subcontainer = UI_CONTAINER_VBOX) { ui_togglebutton(obj, .label = "Attach", .onchange = doc1_attachment); - ui_hbox(obj, .margin = 10, .spacing = 8) { + ui_grid(obj, .margin = 10, .columnspacing = 8, .rowspacing = 8, .def_hfill = TRUE) { ui_togglebutton(obj, .label = "Enable 1", .onchange = doc_enable_state1, .onchangedata = doc1); ui_togglebutton(obj, .label = "Enable 2", .onchange = doc_enable_state2, .onchangedata = doc1); ui_togglebutton(obj, .label = "Enable 3", .onchange = doc_enable_state3, .onchangedata = doc1); ui_togglebutton(obj, .label = "Enable 4", .onchange = doc_enable_state4, .onchangedata = doc1); + + ui_newline(obj); + + ui_togglebutton(obj, .label = "Suppress 1", .onchange = doc_suppress_state1, .onchangedata = doc1); + ui_togglebutton(obj, .label = "Suppress 2", .onchange = doc_suppress_state2, .onchangedata = doc1); + ui_togglebutton(obj, .label = "Suppress 3", .onchange = doc_suppress_state3, .onchangedata = doc1); + ui_togglebutton(obj, .label = "Suppress 4", .onchange = doc_suppress_state4, .onchangedata = doc1); } ui_frame(obj, .label = "Doc 2", .fill = TRUE, .margin = 10, .padding = 10, .spacing = 10, .subcontainer = UI_CONTAINER_VBOX) { ui_togglebutton(obj, .label = "Attach", .onchange = doc2_attachment); - ui_hbox(obj, .margin = 10, .spacing = 8) { + ui_grid(obj, .margin = 10, .columnspacing = 8, .rowspacing = 8, .def_hfill = TRUE) { ui_togglebutton(obj, .label = "Enable 1", .onchange = doc_enable_state1, .onchangedata = doc2); ui_togglebutton(obj, .label = "Enable 2", .onchange = doc_enable_state2, .onchangedata = doc2); ui_togglebutton(obj, .label = "Enable 3", .onchange = doc_enable_state3, .onchangedata = doc2); ui_togglebutton(obj, .label = "Enable 4", .onchange = doc_enable_state4, .onchangedata = doc2); + + ui_newline(obj); + + ui_togglebutton(obj, .label = "Suppress 1", .onchange = doc_suppress_state1, .onchangedata = doc2); + ui_togglebutton(obj, .label = "Suppress 2", .onchange = doc_suppress_state2, .onchangedata = doc2); + ui_togglebutton(obj, .label = "Suppress 3", .onchange = doc_suppress_state3, .onchangedata = doc2); + ui_togglebutton(obj, .label = "Suppress 4", .onchange = doc_suppress_state4, .onchangedata = doc2); } } }