--- 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++) { }