--- 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) {