Tue, 27 Jan 2026 20:14:08 +0100
add visibility_states arg to containers (GTK)
| ui/gtk/container.c | file | annotate | diff | comparison | revisions | |
| ui/ui/container.h | file | annotate | diff | comparison | revisions |
--- a/ui/gtk/container.c Tue Jan 27 13:08:30 2026 +0100 +++ b/ui/gtk/container.c Tue Jan 27 20:14:08 2026 +0100 @@ -393,6 +393,11 @@ UiContainerX *container = ui_box_container(obj, box, type); uic_object_push_container(obj, container); + if(args->visibility_states) { + size_t nstates = uic_state_array_size(args->visibility_states); + ui_widget_set_visibility_states(obj->ctx, box, args->visibility_states, (int)nstates); + } + return box; } @@ -429,6 +434,11 @@ UiContainerX *container = ui_grid_container(obj, grid, args->def_hexpand, args->def_vexpand, args->def_hfill, args->def_vfill); uic_object_push_container(obj, container); + if(args->visibility_states) { + size_t nstates = uic_state_array_size(args->visibility_states); + ui_widget_set_visibility_states(obj->ctx, grid, args->visibility_states, (int)nstates); + } + return grid; } @@ -476,6 +486,11 @@ uic_object_push_container(obj, container); } + if(args->visibility_states) { + size_t nstates = uic_state_array_size(args->visibility_states); + ui_widget_set_visibility_states(obj->ctx, frame, args->visibility_states, (int)nstates); + } + return frame; } @@ -500,6 +515,11 @@ uic_object_push_container(obj, container); } + if(args->visibility_states) { + size_t nstates = uic_state_array_size(args->visibility_states); + ui_widget_set_visibility_states(obj->ctx, expander, args->visibility_states, (int)nstates); + } + return expander; } @@ -525,6 +545,11 @@ uic_object_push_container(obj, container); } + if(args->visibility_states) { + size_t nstates = uic_state_array_size(args->visibility_states); + ui_widget_set_visibility_states(obj->ctx, sw, args->visibility_states, (int)nstates); + } + return sw; } @@ -814,6 +839,11 @@ UiContainerX *container = ui_tabview_container(obj, widget); uic_object_push_container(obj, container); + if(args->visibility_states) { + size_t nstates = uic_state_array_size(args->visibility_states); + ui_widget_set_visibility_states(obj->ctx, widget, args->visibility_states, (int)nstates); + } + return widget; }
--- a/ui/ui/container.h Tue Jan 27 13:08:30 2026 +0100 +++ b/ui/ui/container.h Tue Jan 27 20:14:08 2026 +0100 @@ -82,6 +82,8 @@ UiBool def_vfill; UiBool def_hexpand; UiBool def_vexpand; + + const int *visibility_states; } UiContainerArgs; typedef struct UiFrameArgs { @@ -112,6 +114,8 @@ const char* label; UiBool isexpanded; + + const int *visibility_states; } UiFrameArgs; typedef struct UiTabViewArgs { @@ -144,6 +148,8 @@ int spacing; int columnspacing; int rowspacing; + + const int *visibility_states; } UiTabViewArgs; typedef struct UiHeaderbarArgs {