diff -r 10a783120051 -r c2b318b93062 application/main.c --- a/application/main.c Wed Nov 19 18:30:53 2025 +0100 +++ b/application/main.c Thu Nov 20 20:09:00 2025 +0100 @@ -924,6 +924,8 @@ UiDouble *num; UiInteger *toggle1; UiInteger *toggle2; + + UiInteger *checkbox1; } WData; @@ -969,6 +971,15 @@ printf("toggle2: %d\n\n", (int)ui_get(wdata->toggle2)); } +static void action_show_button1(UiEvent *event, void *data) { + WData *wdata = event->window; + if(event->intval) { + ui_set_group(event->obj->ctx, 10); + } else { + ui_unset_group(event->obj->ctx, 10); + } +} + void application_startup(UiEvent *event, void *data) { menulist = ui_list_new(ui_global_context(), "menulist"); @@ -987,6 +998,7 @@ wdata->num = ui_double_new(obj->ctx, "num"); wdata->toggle1 = ui_int_new(obj->ctx, "toggle1"); wdata->toggle2 = ui_int_new(obj->ctx, "toggle2"); + wdata->checkbox1 = ui_int_new(obj->ctx, NULL); obj->window = wdata; ui_list_append(wdata->list, "List Item 1"); @@ -1007,42 +1019,25 @@ */ ui_button(obj, .label = "Next Tab", .onclick = action_next_tab); - ui_tabview_w(obj, wdata->tabview, .value = wdata->tab, .fill = UI_ON) { + ui_tabview_w(obj, wdata->tabview, .value = wdata->tab, .fill = UI_ON) { ui_tab(obj, "Tab 1") { - ui_textarea(obj, .varname = "text", .fill = UI_ON); + ui_vbox(obj, .margin = 10, .spacing = 10) { + UIWIDGET w = ui_button(obj, .label = "Button 1"); + int state = 10; + ui_widget_set_visibility_states(obj->ctx, w, &state, 1); + ui_button(obj, .label = "Button 2"); + ui_checkbox(obj, .label = "Hide Button 1", .value = wdata->checkbox1, .onchange = action_show_button1); + } } ui_tab(obj, "Tab 2") { - ui_combobox(obj, .list = wdata->list); - ui_label(obj, .label = "Test"); - ui_separator(obj, .name = "s1"); - } - - ui_tab(obj, "Tab 3") { - ui_button(obj, .label = "Test Tab 3", .onclick = action_remove_tab3); - } - - ui_tab(obj, "Tab 4") { - ui_grid(obj, .margin = 10) { - ui_spinbox(obj, .varname = "num"); - } - } - - ui_tab(obj, "Tab 5") { - ui_grid(obj, .margin = 0, .columnspacing = 10, .rowspacing = 10) { - ui_button(obj, .label = "Button"); - ui_button(obj, .label = "Button"); - ui_button(obj, .label = "Button"); - ui_newline(obj); - - for(int i=0;i<10;i++) { - ui_button(obj, .label = "Margin", .margin_left = 2*i); - ui_newline(obj); - } - } + } } + ui_set(wdata->checkbox1, 1); + ui_set_group(obj->ctx, 10); + ui_show(obj);