ui/common/args.c

changeset 110
c00e968d018b
parent 109
c3dfcb8f0be7
child 112
c3f2f16fa4b8
--- a/ui/common/args.c	Sun Aug 24 15:24:16 2025 +0200
+++ b/ui/common/args.c	Sat Oct 04 14:52:59 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);
 }
 
@@ -424,7 +430,7 @@
 }
 
 void ui_container_args_set_fill(UiContainerArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 void ui_container_args_set_hexpand(UiContainerArgs *args, UiBool value) {
@@ -529,7 +535,7 @@
 
 
 void ui_frame_args_set_fill(UiFrameArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -662,7 +668,7 @@
 
 
 void ui_splitpane_args_set_fill(UiSplitPaneArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -735,6 +741,9 @@
     args->initial_position = pos;
 }
 
+void ui_splitpane_args_set_position_property(UiSplitPaneArgs *args, const char *propname) {
+    args->position_property = strdup(propname);
+}
 
 void ui_splitpane_args_set_varname(UiSplitPaneArgs *args, const char *varname) {
     args->varname = strdup(varname);
@@ -754,6 +763,115 @@
     free((void*)args->name);
     free((void*)args->style_class);
     free((void*)args->varname);
+    free((void*)args->position_property);
+    free(args);
+}
+
+
+/* ---------------------------- UiTabViewArgs ---------------------------- */
+
+UiTabViewArgs* ui_tabview_args_new(void) {
+    UiTabViewArgs *args = malloc(sizeof(UiTabViewArgs));
+    memset(args, 0, sizeof(UiTabViewArgs));
+    return args;
+}
+
+void ui_tabview_args_set_fill(UiTabViewArgs *args, UiBool fill) {
+    args->fill = fill;
+}
+
+void ui_tabview_args_set_hexpand(UiTabViewArgs *args, UiBool value) {
+    args->hexpand = value;
+}
+
+
+void ui_tabview_args_set_vexpand(UiTabViewArgs *args, UiBool value) {
+    args->vexpand = value;
+}
+
+
+void ui_tabview_args_set_hfill(UiTabViewArgs *args, UiBool value) {
+    args->hfill = value;
+}
+
+
+void ui_tabview_args_set_vfill(UiTabViewArgs *args, UiBool value) {
+    args->vfill = value;
+}
+
+
+void ui_tabview_args_set_override_defaults(UiTabViewArgs *args, UiBool value) {
+    args->override_defaults = value;
+}
+
+
+void ui_tabview_args_set_colspan(UiTabViewArgs *args, int colspan) {
+    args->colspan = colspan;
+}
+
+
+void ui_tabview_args_set_rowspan(UiTabViewArgs *args, int rowspan) {
+    args->rowspan = rowspan;
+}
+
+
+void ui_tabview_args_set_name(UiTabViewArgs *args, const char *name) {
+    args->name = strdup(name);
+}
+
+
+void ui_tabview_args_set_style_class(UiTabViewArgs *args, const char *classname) {
+    args->style_class = strdup(classname);
+}
+
+
+void ui_tabview_args_set_margin(UiTabViewArgs *args, int value) {
+    args->margin = value;
+}
+
+
+void ui_tabview_args_set_spacing(UiTabViewArgs *args, int value) {
+    args->spacing = value;
+}
+
+
+void ui_tabview_args_set_columnspacing(UiTabViewArgs *args, int value) {
+    args->columnspacing = value;
+}
+
+
+void ui_tabview_args_set_rowspacing(UiTabViewArgs *args, int value) {
+    args->rowspacing = value;
+}
+
+void ui_tabview_args_set_type(UiTabViewArgs *args, UiTabViewType tabview) {
+    args->tabview = tabview;
+}
+
+void ui_tabview_args_set_onchange(UiTabViewArgs *args, ui_callback cb) {
+    args->onchange = cb;
+}
+
+void ui_tabview_args_set_onchangedata(UiTabViewArgs *args, void *userdata) {
+    args->onchangedata = userdata;
+}
+
+void ui_tabview_args_set_varname(UiTabViewArgs *args, const char *varname) {
+    args->varname = strdup(varname);
+}
+
+void ui_tabview_args_set_value(UiTabViewArgs *args, UiInteger *value) {
+    args->value = value;
+}
+
+void ui_tabview_args_set_subcontainer(UiTabViewArgs *args, UiSubContainerType subcontainer) {
+    args->subcontainer = subcontainer;
+}
+
+void ui_tabview_args_free(UiTabViewArgs *args) {
+    free((void*)args->name);
+    free((void*)args->style_class);
+    free((void*)args->varname);
     free(args);
 }
 
@@ -768,7 +886,7 @@
 
 
 void ui_widget_args_set_fill(UiWidgetArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -834,7 +952,7 @@
 
 
 void ui_label_args_set_fill(UiLabelArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -923,7 +1041,7 @@
 
 
 void ui_progressbar_args_set_fill(UiProgressbarArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -1004,7 +1122,7 @@
 }
 
 void ui_progress_spinner_args_set_fill(UiProgressbarSpinnerArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 void ui_progress_spinner_args_set_hexpand(UiProgressbarSpinnerArgs *args, UiBool value) {
@@ -1069,7 +1187,7 @@
 
 
 void ui_button_args_set_fill(UiButtonArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -1145,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) {
@@ -1171,7 +1291,7 @@
 
 
 void ui_toggle_args_set_fill(UiToggleArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -1259,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) {
@@ -1285,7 +1407,7 @@
 
 
 void ui_linkbutton_args_set_fill(UiLinkButtonArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -1365,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) {
@@ -1389,7 +1513,7 @@
 }
 
 void ui_list_args_set_fill(UiListArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 void ui_list_args_set_hexpand(UiListArgs *args, UiBool value) {
@@ -1461,6 +1585,14 @@
     args->getvalue2data = userdata;
 }
 
+void ui_list_args_set_getstyle_func(UiListArgs *args, ui_getstylefunc getstyle) {
+    args->getstyle = getstyle;
+}
+
+void ui_list_args_set_getstyle_data(UiListArgs *args, void *userdata) {
+    args->getstyledata = userdata;
+}
+
 void ui_list_args_set_onactivate(UiListArgs *args, ui_callback callback) {
     args->onactivate = callback;
 }
@@ -1501,6 +1633,14 @@
     args->ondropdata = userdata;
 }
 
+void ui_list_args_set_onsave(UiListArgs *args, ui_list_savefunc onsave) {
+    args->onsave = onsave;
+}
+
+void ui_list_args_set_onsavedata(UiListArgs *args, void *userdata) {
+    args->onsavedata = userdata;
+}
+
 void ui_list_args_set_multiselection(UiListArgs *args, UiBool multiselection) {
     args->multiselection = multiselection;
 }
@@ -1509,8 +1649,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) {
@@ -1523,6 +1665,7 @@
         }
         free(args->static_elements);
     }
+    free((void*)args->groups);
     free(args);
 }
 
@@ -1538,7 +1681,7 @@
 
 
 void ui_sourcelist_args_set_fill(UiSourceListArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -1630,12 +1773,16 @@
     args->onbuttonclickdata = userdata;
 }
 
+void ui_sourcelist_args_set_contextmenu(UiSourceListArgs *args, UiMenuBuilder *menubuilder) {
+    args->contextmenu = menubuilder;
+}
 
 void ui_sourcelist_args_free(UiSourceListArgs *args) {
     free((void*)args->name);
     free((void*)args->style_class);
     free((void*)args->varname);
     free((void*)args->sublists);
+    free((void*)args->groups);
     free(args);
 }
 
@@ -1650,7 +1797,7 @@
 
 
 void ui_textarea_args_set_fill(UiTextAreaArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -1715,8 +1862,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) {
@@ -1739,7 +1888,7 @@
 
 
 void ui_textfield_args_set_fill(UiTextFieldArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -1813,8 +1962,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) {
@@ -1826,6 +1977,109 @@
 }
 
 
+/* ------------------------- UiSpinBoxArgs ----------------------------*/
+
+UiSpinBoxArgs* ui_spinbox_args_new(void) {
+    UiSpinBoxArgs *args = malloc(sizeof(UiSpinBoxArgs));
+    memset(args, 0, sizeof(UiSpinBoxArgs));
+    return args;
+}
+
+void ui_spinbox_args_set_fill(UiSpinBoxArgs *args, UiBool fill) {
+    args->fill = fill;
+}
+
+void ui_spinbox_args_set_hexpand(UiSpinBoxArgs *args, UiBool value) {
+    args->hexpand = value;
+}
+
+void ui_spinbox_args_set_vexpand(UiSpinBoxArgs *args, UiBool value) {
+    args->vexpand = value;
+}
+
+void ui_spinbox_args_set_hfill(UiSpinBoxArgs *args, UiBool value) {
+    args->hfill = value;
+}
+
+void ui_spinbox_args_set_vfill(UiSpinBoxArgs *args, UiBool value) {
+    args->vfill = value;
+}
+
+void ui_spinbox_args_set_override_defaults(UiSpinBoxArgs *args, UiBool value) {
+    args->override_defaults = value;
+}
+
+void ui_spinbox_args_set_colspan(UiSpinBoxArgs *args, int colspan) {
+    args->colspan = colspan;
+}
+
+void ui_spinbox_args_set_rowspan(UiSpinBoxArgs *args, int rowspan) {
+    args->rowspan = rowspan;
+}
+
+void ui_spinbox_args_set_name(UiSpinBoxArgs *args, const char *name) {
+    args->name = strdup(name);
+}
+
+void ui_spinbox_args_set_style_class(UiSpinBoxArgs *args, const char *classname) {
+    args->style_class = strdup(classname);
+}
+
+void ui_spinbox_args_set_onchange(UiSpinBoxArgs *args, ui_callback callback) {
+    args->onchange = callback;
+}
+
+void ui_spinbox_args_set_onchangedata(UiSpinBoxArgs *args, void *onchangedata) {
+    args->onchangedata = onchangedata;
+}
+
+void ui_spinbox_args_set_min(UiSpinBoxArgs *args, double min) {
+    args->min = min;
+}
+
+void ui_spinbox_args_set_max(UiSpinBoxArgs *args, double max) {
+    args->max = max;
+}
+
+void ui_spinbox_args_set_step(UiSpinBoxArgs *args, double step) {
+    args->step = step;
+}
+
+void ui_spinbox_args_set_digits(UiSpinBoxArgs *args, int digits) {
+    args->digits;
+}
+
+void ui_spinbox_args_set_varname(UiSpinBoxArgs *args, const char *varname) {
+    args->varname = strdup(varname);
+}
+
+void ui_spinbox_args_set_intvalue(UiSpinBoxArgs *args, UiInteger *value) {
+    args->intvalue = value;
+}
+
+void ui_spinbox_args_set_doublevalue(UiSpinBoxArgs *args, UiDouble *value) {
+    args->doublevalue = value;
+}
+
+void ui_spinbox_args_set_rangevalue(UiSpinBoxArgs *args, UiRange *value) {
+    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_free(UiSpinBoxArgs *args) {
+    free((void*)args->name);
+    free((void*)args->style_class);
+    free((void*)args->varname);
+    free((void*)args->groups);
+    free(args);
+}
+
+
 /* ------------------------- UiWebviewArgs ----------------------------*/
 
 UiWebviewArgs* ui_webview_args_new(void) {
@@ -1836,7 +2090,7 @@
 
 
 void ui_webview_args_set_fill(UiWebviewArgs *args, UiBool fill) {
-    args->fill = fill ? UI_ON : UI_OFF;
+    args->fill = fill;
 }
 
 
@@ -1892,8 +2146,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