ui/common/args.c

changeset 773
239d29f31cf8
parent 767
e5bda948a55f
child 780
f135137ae209
--- 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) {

mercurial