add visibility_states arg to containers (GTK)

Tue, 27 Jan 2026 20:14:08 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 27 Jan 2026 20:14:08 +0100
changeset 1061
3776fdc30bbe
parent 1060
74bed80a0503
child 1062
988665ad8dd5

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 {

mercurial