diff -r fa8afa19b8b6 -r 239d29f31cf8 ui/common/args.c --- a/ui/common/args.c Sun Sep 21 21:20:58 2025 +0200 +++ b/ui/common/args.c Mon Sep 22 22:25:14 2025 +0200 @@ -320,13 +320,16 @@ args->onclickdata = onclickdata; } -void ui_toolbar_item_args_set_groups(UiToolbarItemArgs *args, int *groups) { - // TODO +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_free(UiToolbarItemArgs *args) { free((void*)args->label); free((void*)args->stockid); free((void*)args->icon); + free((void*)args->groups); free(args); } @@ -369,8 +372,10 @@ } -void ui_toolbar_toggleitem_args_set_groups(UiToolbarToggleItemArgs *args, int *groups) { - // TODO +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; } @@ -379,6 +384,7 @@ free((void*)args->stockid); free((void*)args->icon); free((void*)args->varname); + free((void*)args->groups); free(args); } @@ -1257,8 +1263,10 @@ args->onclickdata = onclickdata; } -void ui_button_args_set_groups(UiButtonArgs *args, int *groups){ - // TODO +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_free(UiButtonArgs *args) { @@ -1371,8 +1379,10 @@ args->enable_group = group; } -void ui_toggle_args_set_groups(UiToggleArgs *args, int *groups){ - // TODO +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_free(UiToggleArgs *args) { @@ -1477,8 +1487,10 @@ args->value = value; } -void ui_linkbutton_args_set_groups(UiLinkButtonArgs *args, int *groups){ - // TODO +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_free(UiLinkButtonArgs *args) { @@ -1629,8 +1641,10 @@ args->contextmenu = menubuilder; } -void ui_list_args_set_groups(UiListArgs *args, int *groups) { - // TODO +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_free(UiListArgs *args) { @@ -1643,6 +1657,7 @@ } free(args->static_elements); } + free((void*)args->groups); free(args); } @@ -1759,6 +1774,7 @@ free((void*)args->style_class); free((void*)args->varname); free((void*)args->sublists); + free((void*)args->groups); free(args); } @@ -1838,8 +1854,10 @@ args->value = value; } -void ui_textarea_args_set_groups(UiTextAreaArgs *args, int *groups){ - // TODO +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_free(UiTextAreaArgs *args) { @@ -1936,8 +1954,10 @@ args->value = value; } -void ui_textfield_args_set_groups(UiTextFieldArgs *args, int *groups){ - // TODO +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_free(UiTextFieldArgs *args) { @@ -2037,14 +2057,17 @@ args->rangevalue = value; } -void ui_spinbox_args_set_groups(UiSpinBoxArgs *args, int *groups) { - // TODO +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_free(UiSpinBoxArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); + free((void*)args->groups); free(args); } @@ -2115,8 +2138,10 @@ args->value = value; } -void ui_webview_args_set_groups(UiWebviewArgs *args, int *groups){ - // TODO +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_free(UiWebviewArgs *args) {