Sun, 07 Dec 2025 15:23:03 +0100
rename groups to states
--- a/application/main.c Sun Dec 07 14:39:03 2025 +0100 +++ b/application/main.c Sun Dec 07 15:23:03 2025 +0100 @@ -659,7 +659,7 @@ ui_button(obj, .label = "Disable Group 2", .onclick = action_group2, .onclickdata = "disable"); ui_newline(obj); - ui_button(obj, .label = "Groups 1,2", .colspan = 2, .groups = UI_GROUPS(1, 2)); + ui_button(obj, .label = "Groups 1,2", .colspan = 2, .states = UI_GROUPS(1, 2)); ui_newline(obj); ui_label(obj, .label = "Label Col 1", .align = UI_ALIGN_LEFT);
--- a/client/args.c Sun Dec 07 14:39:03 2025 +0100 +++ b/client/args.c Sun Dec 07 15:23:03 2025 +0100 @@ -137,7 +137,7 @@ } } -void init_groups(const CxJsonValue *value, void *args, argfunc_set_intarray setarray) { +void init_states(const CxJsonValue *value, void *args, argfunc_set_intarray setarray) { CxJsonValue *val = cxJsonObjGet(value, "states"); if(!val || val->type != CX_JSON_ARRAY) { return; @@ -208,7 +208,7 @@ } init_common_args(value, args, &button_args); - init_groups(value, args, (argfunc_set_intarray)ui_button_args_set_groups); + init_states(value, args, (argfunc_set_intarray)ui_button_args_set_groups); CxJsonValue *val = cxJsonObjGet(value, "label"); if(val && val->type == CX_JSON_STRING) { @@ -240,7 +240,7 @@ } init_common_args(value, args, &button_args); - init_groups(value, args, (argfunc_set_intarray)ui_button_args_set_groups); + init_states(value, args, (argfunc_set_intarray)ui_button_args_set_groups); CxJsonValue *val = cxJsonObjGet(value, "label"); if(val && val->type == CX_JSON_STRING) { @@ -264,7 +264,7 @@ val = cxJsonObjGet(value, "enable_group"); if(val && val->type == CX_JSON_INTEGER) { - ui_toggle_args_set_enablegroup(args, (int)val->value.integer); + ui_toggle_args_set_enablestate(args, (int)val->value.integer); } return args;
--- a/ui/common/args.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/common/args.c Sun Dec 07 15:23:03 2025 +0100 @@ -175,10 +175,10 @@ free((void*)args->lbutton2); free((void*)args->rbutton3); free((void*)args->rbutton4); - free((void*)args->lbutton1_groups); - free((void*)args->lbutton2_groups); - free((void*)args->rbutton3_groups); - free((void*)args->rbutton4_groups); + free((void*)args->lbutton1_states); + free((void*)args->lbutton2_states); + free((void*)args->rbutton3_states); + free((void*)args->rbutton4_states); free(args); } @@ -310,16 +310,16 @@ args->onclickdata = onclickdata; } -void ui_toolbar_item_args_set_groups(UiToolbarItemArgs *args, int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_toolbar_item_args_set_states(UiToolbarItemArgs *args, int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_toolbar_item_args_free(UiToolbarItemArgs *args) { free((void*)args->label); free((void*)args->icon); free((void*)args->tooltip); - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -355,10 +355,10 @@ args->onchangedata = onchangedata; } -void ui_toolbar_toggleitem_args_set_groups(UiToolbarToggleItemArgs *args,int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_toolbar_toggleitem_args_set_states(UiToolbarToggleItemArgs *args,int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_toolbar_toggleitem_args_free(UiToolbarToggleItemArgs *args) { @@ -366,7 +366,7 @@ free((void*)args->icon); free((void*)args->tooltip); free((void*)args->varname); - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -1383,10 +1383,10 @@ args->onclickdata = onclickdata; } -void ui_button_args_set_groups(UiButtonArgs *args, int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_button_args_set_states(UiButtonArgs *args, int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_button_args_free(UiButtonArgs *args) { @@ -1395,7 +1395,7 @@ free((void*)args->label); free((void*)args->icon); free((void*)args->tooltip); - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -1502,14 +1502,14 @@ args->value = value; } -void ui_toggle_args_set_enablegroup(UiToggleArgs *args, int group) { - args->enable_group = group; -} - -void ui_toggle_args_set_groups(UiToggleArgs *args, int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_toggle_args_set_enablestate(UiToggleArgs *args, int state) { + args->enable_state = state; +} + +void ui_toggle_args_set_states(UiToggleArgs *args, int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_toggle_args_free(UiToggleArgs *args) { @@ -1519,7 +1519,7 @@ free((void*)args->icon); free((void*)args->tooltip); free((void*)args->varname); - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -1633,10 +1633,10 @@ args->value = value; } -void ui_linkbutton_args_set_groups(UiLinkButtonArgs *args, int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_linkbutton_args_set_states(UiLinkButtonArgs *args, int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_linkbutton_args_free(UiLinkButtonArgs *args) { @@ -1645,7 +1645,7 @@ free((void*)args->label); free((void*)args->uri); free((void*)args->varname); - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -1815,10 +1815,10 @@ args->contextmenu = menubuilder; } -void ui_list_args_set_groups(UiListArgs *args, int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_list_args_set_states(UiListArgs *args, int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_list_args_free(UiListArgs *args) { @@ -1831,7 +1831,7 @@ } free(args->static_elements); } - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -1971,7 +1971,7 @@ free((void*)args->style_class); free((void*)args->varname); free((void*)args->sublists); - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -2071,17 +2071,17 @@ args->value = value; } -void ui_textarea_args_set_groups(UiTextAreaArgs *args, int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_textarea_args_set_states(UiTextAreaArgs *args, int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_textarea_args_free(UiTextAreaArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -2191,17 +2191,17 @@ args->value = value; } -void ui_textfield_args_set_groups(UiTextFieldArgs *args, int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_textfield_args_set_states(UiTextFieldArgs *args, int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_textfield_args_free(UiTextFieldArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -2314,17 +2314,17 @@ args->rangevalue = value; } -void ui_spinbox_args_set_groups(UiSpinBoxArgs *args, int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_spinbox_args_set_states(UiSpinBoxArgs *args, int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_spinbox_args_free(UiSpinBoxArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); - free((void*)args->groups); + free((void*)args->states); free(args); } @@ -2414,17 +2414,17 @@ args->value = value; } -void ui_webview_args_set_groups(UiWebviewArgs *args, int *states, int numstates) { - args->groups = calloc(numstates+1, sizeof(int)); - memcpy((void*)args->groups, states, numstates * sizeof(int)); - ((int*)args->groups)[numstates] = -1; +void ui_webview_args_set_states(UiWebviewArgs *args, int *states, int numstates) { + args->states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->states, states, numstates * sizeof(int)); + ((int*)args->states)[numstates] = -1; } void ui_webview_args_free(UiWebviewArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); - free((void*)args->groups); + free((void*)args->states); free(args); }
--- a/ui/common/args.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/common/args.h Sun Dec 07 15:23:03 2025 +0100 @@ -107,7 +107,7 @@ UIEXPORT void ui_toolbar_item_args_set_tooltip(UiToolbarItemArgs *args, const char *tooltip); UIEXPORT void ui_toolbar_item_args_set_onclick(UiToolbarItemArgs *args, ui_callback callback); UIEXPORT void ui_toolbar_item_args_set_onclickdata(UiToolbarItemArgs *args, void *onclickdata); -UIEXPORT void ui_toolbar_item_args_set_groups(UiToolbarItemArgs *args, int *states, int numstates); +UIEXPORT void ui_toolbar_item_args_set_states(UiToolbarItemArgs *args, int *states, int numstates); UIEXPORT void ui_toolbar_item_args_free(UiToolbarItemArgs *args); UIEXPORT UiToolbarToggleItemArgs* ui_toolbar_toggleitem_args_new(void); @@ -117,7 +117,7 @@ UIEXPORT void ui_toolbar_toggleitem_args_set_varname(UiToolbarToggleItemArgs *args, const char *varname); UIEXPORT void ui_toolbar_toggleitem_args_set_onchange(UiToolbarToggleItemArgs *args, ui_callback callback); UIEXPORT void ui_toolbar_toggleitem_args_set_onchangedata(UiToolbarToggleItemArgs *args, void *onchangedata); -UIEXPORT void ui_toolbar_toggleitem_args_set_groups(UiToolbarToggleItemArgs *args, int *states, int numstates); +UIEXPORT void ui_toolbar_toggleitem_args_set_states(UiToolbarToggleItemArgs *args, int *states, int numstates); UIEXPORT void ui_toolbar_toggleitem_args_free(UiToolbarToggleItemArgs *args); UIEXPORT UiToolbarMenuArgs* ui_toolbar_menu_args_new(void); @@ -346,7 +346,7 @@ UIEXPORT void ui_button_args_set_labeltype(UiButtonArgs *args, int labeltype); UIEXPORT void ui_button_args_set_onclick(UiButtonArgs *args, ui_callback callback); UIEXPORT void ui_button_args_set_onclickdata(UiButtonArgs *args, void *onclickdata); -UIEXPORT void ui_button_args_set_groups(UiButtonArgs *args, int *states, int numstates); +UIEXPORT void ui_button_args_set_states(UiButtonArgs *args, int *states, int numstates); UIEXPORT void ui_button_args_free(UiButtonArgs *args); UIEXPORT UiToggleArgs* ui_toggle_args_new(void); @@ -373,8 +373,8 @@ UIEXPORT void ui_toggle_args_set_onchangedata(UiToggleArgs *args, void *onchangedata); UIEXPORT void ui_toggle_args_set_varname(UiToggleArgs *args, const char *varname); UIEXPORT void ui_toggle_args_set_value(UiToggleArgs *args, UiInteger *value); -UIEXPORT void ui_toggle_args_set_enablegroup(UiToggleArgs *args, int group); -UIEXPORT void ui_toggle_args_set_groups(UiToggleArgs *args, int *states, int numstates); +UIEXPORT void ui_toggle_args_set_enablestate(UiToggleArgs *args, int state); +UIEXPORT void ui_toggle_args_set_states(UiToggleArgs *args, int *states, int numstates); UIEXPORT void ui_toggle_args_free(UiToggleArgs *args); UIEXPORT UiLinkButtonArgs* ui_linkbutton_args_new(void); @@ -401,7 +401,7 @@ UIEXPORT void ui_linkbutton_args_set_onclickdata(UiLinkButtonArgs *args, void *userdata); UIEXPORT void ui_linkbutton_args_set_nofollow(UiLinkButtonArgs *args, UiBool value); UIEXPORT void ui_linkbutton_args_set_type(UiLinkButtonArgs *args, UiLinkType type); -UIEXPORT void ui_linkbutton_args_set_groups(UiLinkButtonArgs *args, int *states, int numstates); +UIEXPORT void ui_linkbutton_args_set_states(UiLinkButtonArgs *args, int *states, int numstates); UIEXPORT void ui_linkbutton_args_free(UiLinkButtonArgs *args); UIEXPORT UiListArgs* ui_list_args_new(void); @@ -443,7 +443,7 @@ UIEXPORT void ui_list_args_set_onsavedata(UiListArgs *args, void *userdata); UIEXPORT void ui_list_args_set_multiselection(UiListArgs *args, UiBool multiselection); UIEXPORT void ui_list_args_set_contextmenu(UiListArgs *args, UiMenuBuilder *menubuilder); -UIEXPORT void ui_list_args_set_groups(UiListArgs *args, int *states, int numstates); +UIEXPORT void ui_list_args_set_states(UiListArgs *args, int *states, int numstates); UIEXPORT void ui_list_args_free(UiListArgs *args); UIEXPORT UiSourceListArgs* ui_sourcelist_args_new(void); @@ -495,7 +495,7 @@ UIEXPORT void ui_textarea_args_set_onchangedata(UiTextAreaArgs *args, void *onchangedata); UIEXPORT void ui_textarea_args_set_varname(UiTextAreaArgs *args, const char *varname); UIEXPORT void ui_textarea_args_set_value(UiTextAreaArgs *args, UiText *value); -UIEXPORT void ui_textarea_args_set_groups(UiTextAreaArgs *args, int *states, int numstates); +UIEXPORT void ui_textarea_args_set_states(UiTextAreaArgs *args, int *states, int numstates); UIEXPORT void ui_textarea_args_free(UiTextAreaArgs *args); UIEXPORT UiTextFieldArgs* ui_textfield_args_new(void); @@ -520,7 +520,7 @@ UIEXPORT void ui_textfield_args_set_onactivatedata(UiTextFieldArgs *args, void *onactivatedata); UIEXPORT void ui_textfield_args_set_varname(UiTextFieldArgs *args, const char *varname); UIEXPORT void ui_textfield_args_set_value(UiTextFieldArgs *args, UiString *value); -UIEXPORT void ui_textfield_args_set_groups(UiTextFieldArgs *args, int *states, int numstates); +UIEXPORT void ui_textfield_args_set_states(UiTextFieldArgs *args, int *states, int numstates); UIEXPORT void ui_textfield_args_free(UiTextFieldArgs *args); UIEXPORT UiSpinBoxArgs* ui_spinbox_args_new(void); @@ -549,7 +549,7 @@ UIEXPORT void ui_spinbox_args_set_intvalue(UiSpinBoxArgs *args, UiInteger *value); UIEXPORT void ui_spinbox_args_set_doublevalue(UiSpinBoxArgs *args, UiDouble *value); UIEXPORT void ui_spinbox_args_set_rangevalue(UiSpinBoxArgs *args, UiRange *value); -UIEXPORT void ui_spinbox_args_set_groups(UiSpinBoxArgs *args, int *states, int numstates); +UIEXPORT void ui_spinbox_args_set_states(UiSpinBoxArgs *args, int *states, int numstates); UIEXPORT void ui_spinbox_args_free(UiSpinBoxArgs *args); UIEXPORT UiWebviewArgs* ui_webview_args_new(void); @@ -570,7 +570,7 @@ UIEXPORT void ui_webview_args_set_style_class(UiWebviewArgs *args, const char *classname); UIEXPORT void ui_webview_args_set_varname(UiWebviewArgs *args, const char *varname); UIEXPORT void ui_webview_args_set_value(UiWebviewArgs *args, UiGeneric *value); -UIEXPORT void ui_webview_args_set_groups(UiWebviewArgs *args, int *states, int numstates); +UIEXPORT void ui_webview_args_set_states(UiWebviewArgs *args, int *states, int numstates); UIEXPORT void ui_webview_args_free(UiWebviewArgs *args); #ifdef __cplusplus
--- a/ui/common/context.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/common/context.c Sun Dec 07 15:23:03 2025 +0100 @@ -64,8 +64,8 @@ ctx->vars = cxHashMapCreate(mp->allocator, CX_STORE_POINTERS, 16); ctx->documents = cxLinkedListCreate(mp->allocator, cx_cmp_ptr, CX_STORE_POINTERS); - ctx->group_widgets = cxLinkedListCreate(mp->allocator, cx_cmp_ptr, sizeof(UiGroupWidget)); - ctx->groups = cxArrayListCreate(mp->allocator, cx_cmp_int, sizeof(int), 32); + ctx->state_widgets = cxLinkedListCreate(mp->allocator, cx_cmp_ptr, sizeof(UiStateWidget)); + ctx->states = cxArrayListCreate(mp->allocator, cx_cmp_int, sizeof(int), 32); ctx->attach_document = uic_context_attach_document; ctx->detach_document2 = uic_context_detach_document; @@ -92,8 +92,8 @@ } void uic_context_prepare_close(UiContext *ctx) { - cxListClear(ctx->groups); - cxListClear(ctx->group_widgets); + cxListClear(ctx->states); + cxListClear(ctx->state_widgets); } void uic_context_attach_document(UiContext *ctx, void *document) { @@ -526,47 +526,47 @@ void ui_set_group(UiContext *ctx, int group) { - if(!cxListIndexValid(ctx->groups, cxListFind(ctx->groups, &group))) { - cxListAdd(ctx->groups, &group); + if(!cxListIndexValid(ctx->states, cxListFind(ctx->states, &group))) { + cxListAdd(ctx->states, &group); } // enable/disable group widgets - uic_check_group_widgets(ctx); + uic_check_state_widgets(ctx); } void ui_unset_group(UiContext *ctx, int group) { - int i = cxListFind(ctx->groups, &group); + int i = cxListFind(ctx->states, &group); if(i != -1) { - cxListRemove(ctx->groups, i); + cxListRemove(ctx->states, i); } // enable/disable group widgets - uic_check_group_widgets(ctx); + uic_check_state_widgets(ctx); } int* ui_active_groups(UiContext *ctx, int *ngroups) { - *ngroups = cxListSize(ctx->groups); - return cxListAt(ctx->groups, 0); + *ngroups = cxListSize(ctx->states); + return cxListAt(ctx->states, 0); } -void uic_check_group_widgets(UiContext *ctx) { +void uic_check_state_widgets(UiContext *ctx) { int ngroups = 0; int *groups = ui_active_groups(ctx, &ngroups); - CxIterator i = cxListIterator(ctx->group_widgets); - cx_foreach(UiGroupWidget *, gw, i) { - char *check = calloc(1, gw->numgroups); + CxIterator i = cxListIterator(ctx->state_widgets); + cx_foreach(UiStateWidget *, gw, i) { + char *check = calloc(1, gw->numstates); for(int i=0;i<ngroups;i++) { - for(int k=0;k<gw->numgroups;k++) { - if(groups[i] == gw->groups[k]) { + for(int k=0;k<gw->numstates;k++) { + if(groups[i] == gw->states[k]) { check[k] = 1; } } } int enable = 1; - for(int i=0;i<gw->numgroups;i++) { + for(int i=0;i<gw->numstates;i++) { if(check[i] == 0) { enable = 0; break; @@ -577,70 +577,70 @@ } } -void ui_widget_set_groups(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, ...) { +void ui_widget_set_states(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); + // get states + CxList *states = cxArrayListCreate(cxDefaultAllocator, NULL, sizeof(int), 16); va_list ap; va_start(ap, enable); - int group; - while((group = va_arg(ap, int)) != -1) { - cxListAdd(groups, &group); + int state; + while((state = va_arg(ap, int)) != -1) { + cxListAdd(states, &state); } va_end(ap); - uic_add_group_widget(ctx, widget, enable, groups); + uic_add_state_widget(ctx, widget, enable, states); - cxListFree(groups); + cxListFree(states); } -void ui_widget_set_groups2(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, const int *groups, int ngroups) { +void ui_widget_set_states2(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, const int *states, int nstates) { 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); + CxList *ls = cxArrayListCreate(cxDefaultAllocator, NULL, sizeof(int), nstates); + for(int i=0;i<nstates;i++) { + cxListAdd(ls, states+i); } - uic_add_group_widget(ctx, widget, enable, ls); + uic_add_state_widget(ctx, widget, enable, ls); cxListFree(ls); } void ui_widget_set_visibility_states(UiContext *ctx, UIWIDGET widget, const int *states, int nstates) { - ui_widget_set_groups2(ctx, widget, (ui_enablefunc)ui_set_visible, states, nstates); + ui_widget_set_states2(ctx, widget, (ui_enablefunc)ui_set_visible, states, nstates); } -size_t uic_group_array_size(const int *groups) { +size_t uic_state_array_size(const int *states) { int i; - for(i=0;groups[i] >= 0;i++) { } + for(i=0;states[i] >= 0;i++) { } return i; } -void uic_add_group_widget(UiContext *ctx, void *widget, ui_enablefunc enable, CxList *groups) { - uic_add_group_widget_i(ctx, widget, enable, cxListAt(groups, 0), cxListSize(groups)); +void uic_add_state_widget(UiContext *ctx, void *widget, ui_enablefunc enable, CxList *states) { + uic_add_state_widget_i(ctx, widget, enable, cxListAt(states, 0), cxListSize(states)); } -void uic_add_group_widget_i(UiContext *ctx, void *widget, ui_enablefunc enable, const int *groups, size_t numgroups) { +void uic_add_state_widget_i(UiContext *ctx, void *widget, ui_enablefunc enable, const int *states, size_t numstates) { const CxAllocator *a = ctx->allocator; - UiGroupWidget gw; + UiStateWidget gw; gw.widget = widget; gw.enable = enable; - gw.numgroups = numgroups; - gw.groups = cxCalloc(a, numgroups, sizeof(int)); + gw.numstates = numstates; + gw.states = cxCalloc(a, numstates, sizeof(int)); - // copy groups - if(groups) { - memcpy(gw.groups, groups, gw.numgroups * sizeof(int)); + // copy states + if(states) { + memcpy(gw.states, states, gw.numstates * sizeof(int)); } - cxListAdd(ctx->group_widgets, &gw); + cxListAdd(ctx->state_widgets, &gw); } -void uic_remove_group_widget(UiContext *ctx, void *widget) { - (void)cxListFindRemove(ctx->group_widgets, widget); +void uic_remove_state_widget(UiContext *ctx, void *widget) { + (void)cxListFindRemove(ctx->state_widgets, widget); } UIEXPORT void *ui_allocator(UiContext *ctx) {
--- a/ui/common/context.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/common/context.h Sun Dec 07 15:23:03 2025 +0100 @@ -43,7 +43,7 @@ typedef struct UiVar UiVar; typedef struct UiListPtr UiListPtr; typedef struct UiListVar UiListVar; -typedef struct UiGroupWidget UiGroupWidget; +typedef struct UiStateWidget UiStateWidget; typedef struct UiDestroyHandler UiDestroyHandler; typedef enum UiVarType { @@ -69,8 +69,8 @@ CxMap *vars; - CxList *groups; // int list - CxList *group_widgets; // UiGroupWidget list + CxList *states; // int list + CxList *state_widgets; // UiGroupWidget list void (*attach_document)(UiContext *ctx, void *document); void (*detach_document2)(UiContext *ctx, void *document); @@ -102,11 +102,11 @@ UiBool bound; }; -struct UiGroupWidget { +struct UiStateWidget { void *widget; ui_enablefunc enable; - int *groups; - int numgroups; + int *states; + int numstates; }; struct UiDestroyHandler { @@ -145,11 +145,11 @@ void uic_reg_var(UiContext *ctx, const char *name, UiVarType type, void *value); -size_t uic_group_array_size(const int *groups); -void uic_check_group_widgets(UiContext *ctx); -void uic_add_group_widget(UiContext *ctx, void *widget, ui_enablefunc enable, CxList *groups); -void uic_add_group_widget_i(UiContext *ctx, void *widget, ui_enablefunc enable, const int *groups, size_t numgroups); -void uic_remove_group_widget(UiContext *ctx, void *widget); +size_t uic_state_array_size(const int *states); +void uic_check_state_widgets(UiContext *ctx); +void uic_add_state_widget(UiContext *ctx, void *widget, ui_enablefunc enable, CxList *states); +void uic_add_state_widget_i(UiContext *ctx, void *widget, ui_enablefunc enable, const int *states, size_t numstates); +void uic_remove_state_widget(UiContext *ctx, void *widget); #ifdef __cplusplus }
--- a/ui/common/menu.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/common/menu.c Sun Dec 07 15:23:03 2025 +0100 @@ -89,20 +89,20 @@ return s ? strdup(s) : NULL; } -int* uic_copy_groups(const int* groups, size_t *ngroups) { - *ngroups = 0; - if (!groups) { +int* uic_copy_states(const int* states, size_t *nstates) { + *nstates = 0; + if (!states) { return NULL; } size_t n; - for (n = 0; groups[n] > -1; n++) { } + for (n = 0; states[n] > -1; n++) { } - if (ngroups > 0) { + if (nstates > 0) { int* newarray = calloc(n+1, sizeof(int)); - memcpy(newarray, groups, n * sizeof(int)); + memcpy(newarray, states, n * sizeof(int)); newarray[n] = -1; - *ngroups = n; + *nstates = n; return newarray; } return NULL; @@ -152,7 +152,7 @@ item->icon = nl_strdup(args->icon); item->userdata = args->onclickdata; item->callback = args->onclick; - item->groups = uic_copy_groups(args->groups, &item->ngroups); + item->states = uic_copy_states(args->states, &item->nstates); add_item((UiMenuItemI*)item); } @@ -179,7 +179,7 @@ item->varname = nl_strdup(args->varname); item->userdata = args->onchangedata; item->callback = args->onchange; - item->groups = uic_copy_groups(args->groups, &item->ngroups); + item->states = uic_copy_states(args->nstates, &item->nstates); add_item((UiMenuItemI*)item); } @@ -196,7 +196,7 @@ item->varname = nl_strdup(args->varname); item->userdata = args->onchangedata; item->callback = args->onchange; - item->groups = uic_copy_groups(args->groups, &item->ngroups); + item->states = uic_copy_states(args->nstates, &item->nstates); add_item((UiMenuItemI*)item); } @@ -296,14 +296,14 @@ } case UI_MENU_ITEM: { UiMenuItem *i = (UiMenuItem*)item; - free(i->groups); + free(i->states); free(i->label); free(i->icon); break; } case UI_MENU_CHECK_ITEM: { UiMenuCheckItem *i = (UiMenuCheckItem*)item; - free(i->groups); + free(i->states); free(i->label); free(i->icon); free(i->varname); @@ -311,7 +311,7 @@ } case UI_MENU_RADIO_ITEM: { UiMenuRadioItem *i = (UiMenuRadioItem*)item; - free(i->groups); + free(i->states); free(i->label); free(i->icon); free(i->varname);
--- a/ui/common/menu.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/common/menu.h Sun Dec 07 15:23:03 2025 +0100 @@ -79,8 +79,8 @@ char *label; char *icon; void *userdata; - int *groups; - size_t ngroups; + int *states; + size_t nstates; }; struct UiMenuCheckItem { @@ -90,8 +90,8 @@ char *varname; ui_callback callback; void *userdata; - int *groups; - size_t ngroups; + int *states; + size_t nstates; }; struct UiMenuRadioItem { @@ -101,8 +101,8 @@ char *varname; ui_callback callback; void *userdata; - int *groups; - size_t ngroups; + int *states; + size_t nstates; }; struct UiMenuItemList { @@ -129,7 +129,7 @@ void uic_add_menu_to_stack(UiMenu* menu); -int* uic_copy_groups(const int* groups, size_t *ngroups); +int* uic_copy_states(const int* states, size_t *nstates); void uic_set_tmp_eventdata(void *eventdata, int type); void* uic_get_tmp_eventdata(void);
--- a/ui/common/toolbar.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/common/toolbar.c Sun Dec 07 15:23:03 2025 +0100 @@ -57,8 +57,8 @@ newargs.tooltip = nl_strdup(args->tooltip); newargs.onclick = args->onclick; newargs.onclickdata = args->onclickdata; - newargs.groups = uic_copy_groups(args->groups, ngroups); - newargs.visibility_states = uic_copy_groups(args->visibility_states, nvstates); + newargs.states = uic_copy_states(args->states, ngroups); + newargs.visibility_states = uic_copy_states(args->visibility_states, nvstates); return newargs; } @@ -78,8 +78,8 @@ newargs.varname = nl_strdup(args->varname); newargs.onchange = args->onchange; newargs.onchangedata = args->onchangedata; - newargs.groups = uic_copy_groups(args->groups, ngroups); - newargs.visibility_states = uic_copy_groups(args->visibility_states, nvstates); + newargs.states = uic_copy_states(args->states, ngroups); + newargs.visibility_states = uic_copy_states(args->visibility_states, nvstates); return newargs; } @@ -95,7 +95,7 @@ newargs.label = nl_strdup(args->label); newargs.icon = nl_strdup(args->icon); newargs.tooltip = nl_strdup(args->tooltip); - newargs.visibility_states = uic_copy_groups(args->visibility_states, nvstates); + newargs.visibility_states = uic_copy_states(args->visibility_states, nvstates); return newargs; }
--- a/ui/gtk/button.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/gtk/button.c Sun Dec 07 15:23:03 2025 +0100 @@ -106,7 +106,7 @@ UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args) { GtkWidget *button = ui_create_button(obj, args->label, args->icon, args->tooltip, args->onclick, args->onclickdata, 0, FALSE); ui_set_name_and_style(button, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, button, args->groups); + ui_set_widget_groups(obj->ctx, button, args->states); UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; UiLayout layout = UI_ARGS2LAYOUT(args); ct->add(ct, button, &layout); @@ -308,9 +308,9 @@ args->value, args->onchange, args->onchangedata, - args->enable_group); + args->enable_state); ui_set_name_and_style(widget, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, widget, args->groups); + ui_set_widget_groups(obj->ctx, widget, args->states); UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; UiLayout layout = UI_ARGS2LAYOUT(args); @@ -370,10 +370,10 @@ args->onchange, args->onchangedata, (ui_toggled_func)ui_checkbox_enable_state, - args->enable_group); + args->enable_state); ui_set_name_and_style(widget, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, widget, args->groups); + ui_set_widget_groups(obj->ctx, widget, args->states); UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; UiLayout layout = UI_ARGS2LAYOUT(args); @@ -419,7 +419,7 @@ UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs *args) { GtkWidget *widget = gtk_switch_new(); ui_set_name_and_style(widget, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, widget, args->groups); + ui_set_widget_groups(obj->ctx, widget, args->states); UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); if(var) { @@ -541,7 +541,7 @@ GtkWidget *rbutton = RADIOBUTTON_NEW(rg, args->label); ui_set_name_and_style(rbutton, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, rbutton, args->groups); + ui_set_widget_groups(obj->ctx, rbutton, args->states); if(rgroup) { #if GTK_MAJOR_VERSION >= 4 if(rg) { @@ -895,7 +895,7 @@ } ui_set_name_and_style(button, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, button, args->groups); + ui_set_widget_groups(obj->ctx, button, args->states); UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; UiLayout layout = UI_ARGS2LAYOUT(args); ct->add(ct, button, &layout);
--- a/ui/gtk/entry.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/gtk/entry.c Sun Dec 07 15:23:03 2025 +0100 @@ -79,7 +79,7 @@ #endif GtkWidget *spin = gtk_spin_button_new_with_range(min, max, args->step); ui_set_name_and_style(spin, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, spin, args->groups); + ui_set_widget_groups(obj->ctx, spin, args->states); if(args->width > 0) { gtk_widget_set_size_request(spin, args->width, -1);
--- a/ui/gtk/headerbar.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/gtk/headerbar.c Sun Dec 07 15:23:03 2025 +0100 @@ -164,7 +164,7 @@ enum UiToolbarPos pos) { GtkWidget *button = ui_create_button(obj, item->args.label, item->args.icon, item->args.tooltip, item->args.onclick, item->args.onclickdata, 0, FALSE); - ui_set_widget_groups(obj->ctx, button, item->args.groups); + ui_set_widget_groups(obj->ctx, button, item->args.states); ui_set_widget_visibility_states(obj->ctx, button, item->args.visibility_states); WIDGET_ADD_CSS_CLASS(button, "flat"); headerbar_add(headerbar, box, button, pos); @@ -178,7 +178,7 @@ enum UiToolbarPos pos) { GtkWidget *button = gtk_toggle_button_new(); - ui_set_widget_groups(obj->ctx, button, item->args.groups); + ui_set_widget_groups(obj->ctx, button, item->args.states); ui_set_widget_visibility_states(obj->ctx, button, item->args.visibility_states); WIDGET_ADD_CSS_CLASS(button, "flat"); ui_setup_togglebutton(obj, button, item->args.label, item->args.icon, item->args.tooltip, item->args.varname, NULL, item->args.onchange, item->args.onchangedata, 0);
--- a/ui/gtk/list.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/gtk/list.c Sun Dec 07 15:23:03 2025 +0100 @@ -2228,7 +2228,7 @@ SCROLLEDWINDOW_SET_CHILD(scroll_area, listbox); ui_set_name_and_style(listbox, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, listbox, args->groups); + ui_set_widget_groups(obj->ctx, listbox, args->states); UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; UiLayout layout = UI_ARGS2LAYOUT(args); ct->add(ct, scroll_area, &layout);
--- a/ui/gtk/menu.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/gtk/menu.c Sun Dec 07 15:23:03 2025 +0100 @@ -132,7 +132,7 @@ if(i->groups) { CxList *groups = cxArrayListCreateSimple(sizeof(int), i->ngroups); cxListAddArray(groups, i->groups, i->ngroups); - uic_add_group_widget(obj->ctx, widget, (ui_enablefunc)ui_set_enabled, groups); + uic_add_state_widget(obj->ctx, widget, (ui_enablefunc)ui_set_enabled, groups); cxListFree(groups); } } @@ -462,10 +462,10 @@ g_action_map_add_action(obj->ctx->action_map, G_ACTION(action)); g_object_unref(action); - if(i->groups) { - CxList *groups = cxArrayListCreateSimple(sizeof(int), i->ngroups); - cxListAddArray(groups, i->groups, i->ngroups); - uic_add_group_widget(obj->ctx, action, (ui_enablefunc)action_enable, groups); + if(i->states) { + CxList *groups = cxArrayListCreateSimple(sizeof(int), i->nstates); + cxListAddArray(groups, i->states, i->nstates); + uic_add_state_widget(obj->ctx, action, (ui_enablefunc)action_enable, groups); cxListFree(groups); }
--- a/ui/gtk/text.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/gtk/text.c Sun Dec 07 15:23:03 2025 +0100 @@ -113,7 +113,7 @@ GtkWidget *text_area = gtk_text_view_new(); ui_set_name_and_style(text_area, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, text_area, args->groups); + ui_set_widget_groups(obj->ctx, text_area, args->states); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_area), GTK_WRAP_WORD_CHAR); g_signal_connect( @@ -603,7 +603,7 @@ static UIWIDGET create_textfield(UiObject *obj, UiBool frameless, UiBool password, UiTextFieldArgs *args) { GtkWidget *textfield = gtk_entry_new(); ui_set_name_and_style(textfield, args->name, args->style_class); - ui_set_widget_groups(obj->ctx, textfield, args->groups); + ui_set_widget_groups(obj->ctx, textfield, args->states); UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_STRING);
--- a/ui/gtk/toolkit.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/gtk/toolkit.c Sun Dec 07 15:23:03 2025 +0100 @@ -146,7 +146,7 @@ void ui_show(UiObject *obj) { gboolean visible = gtk_widget_is_visible(obj->widget); - uic_check_group_widgets(obj->ctx); + uic_check_state_widgets(obj->ctx); #if GTK_MAJOR_VERSION >= 4 gtk_window_present(GTK_WINDOW(obj->widget)); #elif GTK_MAJOR_VERSION <= 3 @@ -509,13 +509,13 @@ if(!groups) { return; } - size_t ngroups = uic_group_array_size(groups); + size_t ngroups = uic_state_array_size(groups); ui_set_widget_ngroups(ctx, widget, groups, ngroups); } void ui_set_widget_ngroups(UiContext *ctx, GtkWidget *widget, const int *groups, size_t ngroups) { if(ngroups > 0) { - uic_add_group_widget_i(ctx, widget, (ui_enablefunc)ui_set_enabled, groups, ngroups); + uic_add_state_widget_i(ctx, widget, (ui_enablefunc)ui_set_enabled, groups, ngroups); ui_set_enabled(widget, FALSE); } } @@ -524,14 +524,14 @@ if(!states) { return; } - size_t nstates = uic_group_array_size(states); + size_t nstates = uic_state_array_size(states); ui_set_widget_nvisibility_states(ctx, widget, states, nstates); } void ui_set_widget_nvisibility_states(UiContext *ctx, GtkWidget *widget, const int *states, size_t ngroups) { if(ngroups > 0) { - uic_add_group_widget_i(ctx, widget, (ui_enablefunc)ui_set_visible, states, ngroups); + uic_add_state_widget_i(ctx, widget, (ui_enablefunc)ui_set_visible, states, ngroups); ui_set_visible(widget, FALSE); } }
--- a/ui/gtk/webview.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/gtk/webview.c Sun Dec 07 15:23:03 2025 +0100 @@ -60,7 +60,7 @@ } } - ui_set_widget_groups(obj->ctx, webview, args->groups); + ui_set_widget_groups(obj->ctx, webview, args->states); UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; UiLayout layout = UI_ARGS2LAYOUT(args); ct->add(ct, webview, &layout);
--- a/ui/motif/button.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/motif/button.c Sun Dec 07 15:23:03 2025 +0100 @@ -61,7 +61,7 @@ XtManageChild(button); ui_container_add(ctn, button); - ui_set_widget_groups(obj->ctx, button, args->groups); + ui_set_widget_groups(obj->ctx, button, args->states); if(args->onclick) { UiEventData *eventdata = malloc(sizeof(UiEventData)); @@ -118,9 +118,9 @@ XtManageChild(button); ui_container_add(ctn, button); - ui_set_widget_groups(obj->ctx, button, args->groups); + ui_set_widget_groups(obj->ctx, button, args->states); - ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_group); + ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_state); XmStringFree(label); return button; @@ -146,9 +146,9 @@ XtManageChild(button); ui_container_add(ctn, button); - ui_set_widget_groups(obj->ctx, button, args->groups); + ui_set_widget_groups(obj->ctx, button, args->states); - ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_group); + ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_state); XmStringFree(label); return button; @@ -365,7 +365,7 @@ XtManageChild(button); ui_container_add(ctn, button); - ui_set_widget_groups(obj->ctx, button, args->groups); + ui_set_widget_groups(obj->ctx, button, args->states); UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); if(var) { @@ -402,7 +402,7 @@ event->userdata = args->onchangedata; event->observers = NULL; event->var = var; - event->value = args->enable_group; + event->value = args->enable_state; XtAddCallback( button, XmNvalueChangedCallback,
--- a/ui/motif/entry.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/motif/entry.c Sun Dec 07 15:23:03 2025 +0100 @@ -86,7 +86,7 @@ XtManageChild(spinbox); ui_container_add(ctn, spinbox); - ui_set_widget_groups(obj->ctx, spinbox, args->groups); + ui_set_widget_groups(obj->ctx, spinbox, args->states); WidgetList children; Cardinal num_children;
--- a/ui/motif/menu.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/motif/menu.c Sun Dec 07 15:23:03 2025 +0100 @@ -150,7 +150,7 @@ eventdata); } - ui_set_widget_groups(obj->ctx, mitem, it->groups); + ui_set_widget_groups(obj->ctx, mitem, it->states); } void add_menuseparator_widget(Widget p, int i, UiMenuItemI *item, UiObject *obj) { @@ -182,7 +182,7 @@ ui_bind_togglebutton(obj, checkbox, it->varname, NULL, it->callback, it->userdata, 0); - ui_set_widget_groups(obj->ctx, checkbox, it->groups); + ui_set_widget_groups(obj->ctx, checkbox, it->states); } void add_radioitem_widget(Widget p, int index, UiMenuItemI *item, UiObject *obj) {
--- a/ui/motif/text.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/motif/text.c Sun Dec 07 15:23:03 2025 +0100 @@ -408,7 +408,7 @@ XtManageChild(textfield); ui_container_add(ctn, textfield); - ui_set_widget_groups(obj->ctx, textfield, args->groups); + ui_set_widget_groups(obj->ctx, textfield, args->states); UiEventDataExt *eventdata = malloc(sizeof(UiEventDataExt)); memset(eventdata, 0, sizeof(UiEventDataExt));
--- a/ui/motif/toolkit.c Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/motif/toolkit.c Sun Dec 07 15:23:03 2025 +0100 @@ -155,7 +155,7 @@ } void ui_show(UiObject *obj) { - uic_check_group_widgets(obj->ctx); + uic_check_state_widgets(obj->ctx); if(!XtIsRealized(obj->widget)) { XtRealizeWidget(obj->widget); obj->ref++; @@ -332,13 +332,13 @@ if(!groups) { return; } - size_t ngroups = uic_group_array_size(groups); + size_t ngroups = uic_state_array_size(groups); ui_set_widget_ngroups(ctx, widget, groups, ngroups); } void ui_set_widget_ngroups(UiContext *ctx, Widget widget, const int *groups, size_t ngroups) { if(ngroups > 0) { - uic_add_group_widget_i(ctx, widget, (ui_enablefunc)ui_set_enabled, groups, ngroups); + uic_add_state_widget_i(ctx, widget, (ui_enablefunc)ui_set_enabled, groups, ngroups); ui_set_enabled(widget, FALSE); } }
--- a/ui/qt/menu.cpp Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/qt/menu.cpp Sun Dec 07 15:23:03 2025 +0100 @@ -88,8 +88,8 @@ } if(states) { - size_t nstates = uic_group_array_size(states); - uic_add_group_widget_i(obj->ctx, action, (ui_enablefunc)ui_action_enable, states, nstates); + size_t nstates = uic_state_array_size(states); + uic_add_state_widget_i(obj->ctx, action, (ui_enablefunc)ui_action_enable, states, nstates); action->setEnabled(false); } @@ -98,7 +98,7 @@ void add_menuitem_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) { UiMenuItem *it = (UiMenuItem*)item; - UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->groups); + UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->states); parent->addAction(action); QObject::connect(action, SIGNAL(triggered()), action, SLOT(trigger())); } @@ -110,7 +110,7 @@ void add_checkitem_widget(QMenu *parent, int i, UiMenuItemI *item, UiObject *obj) { UiMenuCheckItem *it = (UiMenuCheckItem*)item; - UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->groups); + UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->states); parent->addAction(action); action->setCheckable(true); action->prepare_event = ui_checkableaction_prepare_event; @@ -130,7 +130,7 @@ void add_radioitem_widget(QMenu *parent, int index, UiMenuItemI *item, UiObject *obj) { UiMenuRadioItem *it = (UiMenuRadioItem*)item; - UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->groups); + UiAction *action = create_action(obj, it->icon, it->label, it->callback, it->userdata, it->states); parent->addAction(action); action->setCheckable(true); action->prepare_event = ui_actiongroup_prepare_event;
--- a/ui/ui/button.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/ui/button.h Sun Dec 07 15:23:03 2025 +0100 @@ -65,7 +65,7 @@ ui_callback onclick; void *onclickdata; - const int *groups; + const int *states; } UiButtonArgs; typedef struct UiToggleArgs { @@ -93,9 +93,9 @@ const char *varname; ui_callback onchange; void *onchangedata; - int enable_group; + int enable_state; - const int *groups; + const int *states; } UiToggleArgs; typedef struct UiLinkButtonArgs { @@ -124,7 +124,7 @@ UiBool nofollow; UiLinkType type; - const int *groups; + const int *states; } UiLinkButtonArgs; #define ui_button(obj, ...) ui_button_create(obj, &(UiButtonArgs){ __VA_ARGS__ } )
--- a/ui/ui/entry.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/ui/entry.h Sun Dec 07 15:23:03 2025 +0100 @@ -65,7 +65,7 @@ ui_callback onchange; void* onchangedata; - const int *groups; + const int *states; } UiSpinBoxArgs;
--- a/ui/ui/menu.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/ui/menu.h Sun Dec 07 15:23:03 2025 +0100 @@ -43,7 +43,7 @@ ui_callback onclick; void* onclickdata; - const int* groups; + const int* states; } UiMenuItemArgs; typedef struct UiMenuToggleItemArgs { @@ -54,7 +54,7 @@ ui_callback onchange; void* onchangedata; - const int* groups; + const int* nstates; } UiMenuToggleItemArgs; typedef struct UiMenuItemListArgs {
--- a/ui/ui/text.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/ui/text.h Sun Dec 07 15:23:03 2025 +0100 @@ -59,7 +59,7 @@ ui_callback onchange; void *onchangedata; - const int *groups; + const int *states; } UiTextAreaArgs; typedef struct UiTextFieldArgs { @@ -87,7 +87,7 @@ ui_callback onactivate; void *onactivatedata; - const int *groups; + const int *states; } UiTextFieldArgs; typedef struct UiPathElmRet {
--- a/ui/ui/toolbar.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/ui/toolbar.h Sun Dec 07 15:23:03 2025 +0100 @@ -44,7 +44,7 @@ ui_callback onclick; void* onclickdata; - const int *groups; + const int *states; const int *visibility_states; } UiToolbarItemArgs; @@ -57,7 +57,7 @@ ui_callback onchange; void *onchangedata; - const int *groups; + const int *states; const int *visibility_states; } UiToolbarToggleItemArgs;
--- a/ui/ui/toolkit.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/ui/toolkit.h Sun Dec 07 15:23:03 2025 +0100 @@ -570,8 +570,8 @@ UIEXPORT void ui_attach_document(UiContext *ctx, void *document); 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, const int *groups, int ngroups); +UIEXPORT void ui_widget_set_states(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, ...); +UIEXPORT void ui_widget_set_states2(UiContext *ctx, UIWIDGET widget, ui_enablefunc enable, const int *states, int nstates); UIEXPORT void ui_widget_set_visibility_states(UiContext *ctx, UIWIDGET widget, const int *states, int nstates); UIEXPORT void ui_set_group(UiContext *ctx, int group);
--- a/ui/ui/tree.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/ui/tree.h Sun Dec 07 15:23:03 2025 +0100 @@ -179,7 +179,7 @@ ui_list_savefunc onsave; void *onsavedata; - const int *groups; + const int *states; }; typedef void (*ui_sublist_getvalue_func)(UiList *list, void *sublist_userdata, void *rowdata, int index, UiSubListItem *item, void *userdata); @@ -235,7 +235,7 @@ const char *name; const char *style_class; - const int *groups; + const int *states; /* * static list of sublists
--- a/ui/ui/webview.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/ui/webview.h Sun Dec 07 15:23:03 2025 +0100 @@ -68,7 +68,7 @@ UiGeneric *value; const char *varname; - const int* groups; + const int* states; } UiWebviewArgs; #define ui_webview(obj, ...) ui_webview_create(obj, &(UiWebviewArgs){ __VA_ARGS__ } )
--- a/ui/ui/window.h Sun Dec 07 14:39:03 2025 +0100 +++ b/ui/ui/window.h Sun Dec 07 15:23:03 2025 +0100 @@ -61,10 +61,10 @@ const char *lbutton2; const char *rbutton3; const char *rbutton4; - const int *lbutton1_groups; - const int *lbutton2_groups; - const int *rbutton3_groups; - const int *rbutton4_groups; + const int *lbutton1_states; + const int *lbutton2_states; + const int *rbutton3_states; + const int *rbutton4_states; int default_button; int width; int height;