add ui_widget_set_visibility_states

Tue, 23 Sep 2025 17:40:40 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 23 Sep 2025 17:40:40 +0200
changeset 774
4531a342c5b3
parent 773
239d29f31cf8
child 775
c39e71be2e18

add ui_widget_set_visibility_states

ui/common/context.c file | annotate | diff | comparison | revisions
ui/ui/toolkit.h file | annotate | diff | comparison | revisions
--- a/ui/common/context.c	Mon Sep 22 22:25:14 2025 +0200
+++ b/ui/common/context.c	Tue Sep 23 17:40:40 2025 +0200
@@ -557,6 +557,19 @@
     cxListFree(groups);
 }
 
+void ui_widget_set_groups2(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, int *groups, int ngroups) {
+    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++) { }
--- a/ui/ui/toolkit.h	Mon Sep 22 22:25:14 2025 +0200
+++ b/ui/ui/toolkit.h	Tue Sep 23 17:40:40 2025 +0200
@@ -568,6 +568,8 @@
 UIEXPORT void ui_detach_document(UiContext *ctx, void *document);
 
 UIEXPORT void ui_widget_set_groups(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, ...);
+UIEXPORT void ui_widget_set_groups2(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, int *groups, int ngroups);
+UIEXPORT void ui_widget_set_visibility_states(UiContext *ctx, UIWIDGET widget, int *states, int nstates);
 
 UIEXPORT void ui_set_group(UiContext *ctx, int group);
 UIEXPORT void ui_unset_group(UiContext *ctx, int group);

mercurial