ui/common/context.c

changeset 786
150a1180f7ec
parent 775
c39e71be2e18
child 793
f33f05cd0548
--- a/ui/common/context.c	Thu Oct 02 14:49:17 2025 +0200
+++ b/ui/common/context.c	Thu Oct 02 14:49:27 2025 +0200
@@ -542,6 +542,9 @@
 }
 
 void ui_widget_set_groups(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, ...) {
+    if(enable == NULL) {
+        enable = (ui_enablefunc)ui_set_enabled;
+    }
     // get groups
     CxList *groups = cxArrayListCreate(cxDefaultAllocator, NULL, sizeof(int), 16);
     va_list ap;
@@ -557,6 +560,22 @@
     cxListFree(groups);
 }
 
+void ui_widget_set_groups2(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, int *groups, int ngroups) {
+    if(enable == NULL) {
+        enable = (ui_enablefunc)ui_set_enabled;
+    }
+    CxList *ls = cxArrayListCreate(cxDefaultAllocator, NULL, sizeof(int), ngroups);
+    for(int i=0;i<ngroups;i++) {
+        cxListAdd(ls, groups+i);
+    }
+    uic_add_group_widget(ctx, widget, enable, ls);
+    cxListFree(ls);
+}
+
+void ui_widget_set_visibility_states(UiContext *ctx, UIWIDGET widget, int *states, int nstates) {
+    ui_widget_set_groups2(ctx, widget, (ui_enablefunc)ui_set_visible, states, nstates);
+}
+
 size_t uic_group_array_size(const int *groups) {
     int i;
     for(i=0;groups[i] >= 0;i++) { }

mercurial