Sat, 21 Feb 2026 20:02:31 +0100
add arg wrapper functions for visibility states
| ui/common/args.c | file | annotate | diff | comparison | revisions | |
| ui/common/args.h | file | annotate | diff | comparison | revisions | |
| ui/ui/container.h | file | annotate | diff | comparison | revisions | |
| ui/ui/entry.h | file | annotate | diff | comparison | revisions | |
| ui/ui/list.h | file | annotate | diff | comparison | revisions | |
| ui/ui/webview.h | file | annotate | diff | comparison | revisions |
--- a/ui/common/args.c Thu Feb 12 15:54:48 2026 +0100 +++ b/ui/common/args.c Sat Feb 21 20:02:31 2026 +0100 @@ -519,10 +519,17 @@ args->rowspacing = value; } +void ui_container_args_set_visibility_states(UiContainerArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_container_args_free(UiContainerArgs *args) { free((void*)args->name); free((void*)args->style_class); + free((void*)args->visibility_states); free(args); } @@ -637,10 +644,17 @@ args->label = strdup(label); } +void ui_frame_args_set_visibility_states(UiFrameArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_frame_args_free(UiFrameArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->label); + free((void*)args->visibility_states); free(args); } @@ -797,11 +811,18 @@ args->max_panes = max; } +void ui_splitpane_args_set_visibility_states(UiSplitPaneArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_splitpane_args_free(UiSplitPaneArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); free((void*)args->position_property); + free((void*)args->visibility_states); free(args); } @@ -915,10 +936,17 @@ args->subcontainer = subcontainer; } +void ui_tabview_args_set_visibility_states(UiTabViewArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_tabview_args_free(UiTabViewArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); + free((void*)args->visibility_states); free(args); } @@ -1097,11 +1125,18 @@ args->value = value; } +void ui_label_args_set_visibility_states(UiLabelArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_label_args_free(UiLabelArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->label); free((void*)args->varname); + free((void*)args->visibility_states); free(args); } @@ -1200,10 +1235,17 @@ args->value = value; } +void ui_progressbar_args_set_visibility_states(UiProgressbarArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_progressbar_args_free(UiProgressbarArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); + free((void*)args->visibility_states); free(args); } @@ -1284,10 +1326,17 @@ args->value = value; } +void ui_progress_spinner_args_set_visibility_states(UiProgressbarSpinnerArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_progress_spinner_args_free(UiProgressbarSpinnerArgs *args) { free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); + free((void*)args->visibility_states); free(args); } @@ -1397,6 +1446,12 @@ ((int*)args->states)[numstates] = -1; } +void ui_button_args_set_visibility_states(UiButtonArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_button_args_free(UiButtonArgs *args) { free((void*)args->name); free((void*)args->style_class); @@ -1404,6 +1459,7 @@ free((void*)args->icon); free((void*)args->tooltip); free((void*)args->states); + free((void*)args->visibility_states); free(args); } @@ -1520,6 +1576,12 @@ ((int*)args->states)[numstates] = -1; } +void ui_toggle_args_set_visibility_states(UiToggleArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_toggle_args_free(UiToggleArgs *args) { free((void*)args->name); free((void*)args->style_class); @@ -1528,6 +1590,7 @@ free((void*)args->tooltip); free((void*)args->varname); free((void*)args->states); + free((void*)args->visibility_states); free(args); } @@ -1647,6 +1710,12 @@ ((int*)args->states)[numstates] = -1; } +void ui_linkbutton_args_set_visibility_states(UiLinkButtonArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_linkbutton_args_free(UiLinkButtonArgs *args) { free((void*)args->name); free((void*)args->style_class); @@ -1829,6 +1898,12 @@ ((int*)args->states)[numstates] = -1; } +void ui_list_args_set_visibility_states(UiListArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + void ui_list_args_free(UiListArgs *args) { free((void*)args->name); free((void*)args->style_class); @@ -1840,6 +1915,7 @@ free(args->static_elements); } free((void*)args->states); + free((void*)args->visibility_states); free(args); } @@ -1961,7 +2037,6 @@ } - void ui_sourcelist_args_set_onbuttonclickdata(UiSourceListArgs *args, void *userdata) { args->onbuttonclickdata = userdata; } @@ -1974,12 +2049,19 @@ args->header_is_item = value; } +void ui_sourcelist_args_set_visibility_states(UiSourceListArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_states)[numstates] = -1; +} + 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->states); + free((void*)args->visibility_states); free(args); } @@ -2085,11 +2167,18 @@ ((int*)args->states)[numstates] = -1; } +void ui_textarea_args_set_visibility_states(UiTextAreaArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_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->states); + free((void*)args->visibility_states); free(args); } @@ -2205,11 +2294,18 @@ ((int*)args->states)[numstates] = -1; } +void ui_textfield_args_set_visibility_states(UiTextFieldArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_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->states); + free((void*)args->visibility_states); free(args); } @@ -2328,11 +2424,18 @@ ((int*)args->states)[numstates] = -1; } +void ui_spinbox_args_set_visibility_states(UiSpinBoxArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_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->states); + free((void*)args->visibility_states); free(args); } @@ -2428,11 +2531,18 @@ ((int*)args->states)[numstates] = -1; } +void ui_webview_args_set_visibility_states(UiWebviewArgs *args, int *states, int numstates) { + args->visibility_states = calloc(numstates+1, sizeof(int)); + memcpy((void*)args->visibility_states, states, numstates * sizeof(int)); + ((int*)args->visibility_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->states); + free((void*)args->visibility_states); free(args); }
--- a/ui/common/args.h Thu Feb 12 15:54:48 2026 +0100 +++ b/ui/common/args.h Sat Feb 21 20:02:31 2026 +0100 @@ -149,6 +149,7 @@ UIEXPORT void ui_container_args_set_spacing(UiContainerArgs *args, int value); UIEXPORT void ui_container_args_set_columnspacing(UiContainerArgs *args, int value); UIEXPORT void ui_container_args_set_rowspacing(UiContainerArgs *args, int value); +UIEXPORT void ui_container_args_set_visibility_states(UiContainerArgs *args, int *states, int numstates); UIEXPORT void ui_container_args_free(UiContainerArgs *args); UIEXPORT UiFrameArgs* ui_frame_args_new(void); @@ -174,6 +175,7 @@ UIEXPORT void ui_frame_args_set_rowspacing(UiFrameArgs *args, int value); UIEXPORT void ui_frame_args_set_expanded(UiFrameArgs *args, UiBool value); UIEXPORT void ui_frame_args_set_label(UiFrameArgs *args, const char *label); +UIEXPORT void ui_frame_args_set_visibility_states(UiFrameArgs *args, int *states, int numstates); UIEXPORT void ui_frame_args_free(UiFrameArgs *args); UIEXPORT UiSidebarArgs* ui_sidebar_args_new(void); @@ -211,6 +213,7 @@ UIEXPORT void ui_splitpane_args_set_varname(UiSplitPaneArgs *args, const char *varname); UIEXPORT void ui_splitpane_args_set_value(UiSplitPaneArgs *args, UiInteger *value); UIEXPORT void ui_splitpane_args_set_max_panes(UiSplitPaneArgs *args, int max); +UIEXPORT void ui_splitpane_args_set_visibility_states(UiSplitPaneArgs *args, int *states, int numstates); UIEXPORT void ui_splitpane_args_free(UiSplitPaneArgs *args); UIEXPORT UiTabViewArgs* ui_tabview_args_new(void); @@ -239,6 +242,7 @@ UIEXPORT void ui_tabview_args_set_varname(UiTabViewArgs *args, const char *varname); UIEXPORT void ui_tabview_args_set_value(UiTabViewArgs *args, UiInteger *value); UIEXPORT void ui_tabview_args_set_subcontainer(UiTabViewArgs *args, UiSubContainerType subcontainer); +UIEXPORT void ui_tabview_args_set_visibility_states(UiTabViewArgs *args, int *states, int numstates); UIEXPORT void ui_tabview_args_free(UiTabViewArgs *args); UIEXPORT UiWidgetArgs* ui_widget_args_new(void); @@ -280,6 +284,7 @@ UIEXPORT void ui_label_args_set_style(UiLabelArgs *args, UiLabelStyle style); UIEXPORT void ui_label_args_set_value(UiLabelArgs *args, UiString *value); UIEXPORT void ui_label_args_set_varname(UiLabelArgs *args, const char *varname); +UIEXPORT void ui_label_args_set_visibility_states(UiLabelArgs *args, int *states, int numstates); UIEXPORT void ui_label_args_free(UiLabelArgs *args); UIEXPORT UiProgressbarArgs* ui_progressbar_args_new(void); @@ -302,6 +307,7 @@ UIEXPORT void ui_progressbar_args_set_max(UiProgressbarArgs *args, double max); UIEXPORT void ui_progressbar_args_set_value(UiProgressbarArgs *args, UiDouble *value); UIEXPORT void ui_progressbar_args_set_varname(UiProgressbarArgs *args, const char *varname); +UIEXPORT void ui_progressbar_args_set_visibility_states(UiProgressbarArgs *args, int *states, int numstates); UIEXPORT void ui_progressbar_args_free(UiProgressbarArgs *args); UIEXPORT UiProgressbarSpinnerArgs* ui_progress_spinner_args_new(void); @@ -322,6 +328,7 @@ UIEXPORT void ui_progress_spinner_args_set_style_class(UiProgressbarSpinnerArgs *args, const char *classname); UIEXPORT void ui_progress_spinner_args_set_value(UiProgressbarSpinnerArgs *args, UiInteger *value); UIEXPORT void ui_progress_spinner_args_set_varname(UiProgressbarSpinnerArgs *args, const char *varname); +UIEXPORT void ui_progress_spinner_args_set_visibility_states(UiProgressbarSpinnerArgs *args, int *states, int numstates); UIEXPORT void ui_progress_spinner_args_free(UiProgressbarSpinnerArgs *args); UIEXPORT UiButtonArgs* ui_button_args_new(void); @@ -347,6 +354,7 @@ 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_states(UiButtonArgs *args, int *states, int numstates); +UIEXPORT void ui_button_args_set_visibility_states(UiButtonArgs *args, int *states, int numstates); UIEXPORT void ui_button_args_free(UiButtonArgs *args); UIEXPORT UiToggleArgs* ui_toggle_args_new(void); @@ -375,6 +383,7 @@ UIEXPORT void ui_toggle_args_set_value(UiToggleArgs *args, UiInteger *value); 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_set_visibility_states(UiToggleArgs *args, int *states, int numstates); UIEXPORT void ui_toggle_args_free(UiToggleArgs *args); UIEXPORT UiLinkButtonArgs* ui_linkbutton_args_new(void); @@ -402,6 +411,7 @@ 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_states(UiLinkButtonArgs *args, int *states, int numstates); +UIEXPORT void ui_linkbutton_args_set_visibility_states(UiLinkButtonArgs *args, int *states, int numstates); UIEXPORT void ui_linkbutton_args_free(UiLinkButtonArgs *args); UIEXPORT UiListArgs* ui_list_args_new(void); @@ -444,6 +454,7 @@ 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_states(UiListArgs *args, int *states, int numstates); +UIEXPORT void ui_list_args_set_visibility_states(UiListArgs *args, int *states, int numstates); UIEXPORT void ui_list_args_free(UiListArgs *args); UIEXPORT UiSourceListArgs* ui_sourcelist_args_new(void); @@ -473,6 +484,7 @@ UIEXPORT void ui_sourcelist_args_set_onbuttonclickdata(UiSourceListArgs *args, void *userdata); UIEXPORT void ui_sourcelist_args_set_contextmenu(UiSourceListArgs *args, UiMenuBuilder *menubuilder); UIEXPORT void ui_sourcelist_args_set_header_is_item(UiSourceListArgs *args, UiBool value); +UIEXPORT void ui_sourcelist_args_set_visibility_states(UiSourceListArgs *args, int *states, int numstates); UIEXPORT void ui_sourcelist_args_free(UiSourceListArgs *args); UIEXPORT UiTextAreaArgs* ui_textarea_args_new(void); @@ -496,6 +508,7 @@ 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_states(UiTextAreaArgs *args, int *states, int numstates); +UIEXPORT void ui_textarea_args_set_visibility_states(UiTextAreaArgs *args, int *states, int numstates); UIEXPORT void ui_textarea_args_free(UiTextAreaArgs *args); UIEXPORT UiTextFieldArgs* ui_textfield_args_new(void); @@ -521,6 +534,7 @@ 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_states(UiTextFieldArgs *args, int *states, int numstates); +UIEXPORT void ui_textfield_args_set_visibility_states(UiTextFieldArgs *args, int *states, int numstates); UIEXPORT void ui_textfield_args_free(UiTextFieldArgs *args); UIEXPORT UiSpinBoxArgs* ui_spinbox_args_new(void); @@ -550,6 +564,7 @@ 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_states(UiSpinBoxArgs *args, int *states, int numstates); +UIEXPORT void ui_spinbox_args_set_visibility_states(UiSpinBoxArgs *args, int *states, int numstates); UIEXPORT void ui_spinbox_args_free(UiSpinBoxArgs *args); UIEXPORT UiWebviewArgs* ui_webview_args_new(void); @@ -571,6 +586,7 @@ 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_states(UiWebviewArgs *args, int *states, int numstates); +UIEXPORT void ui_webview_args_set_visibility_states(UiWebviewArgs *args, int *states, int numstates); UIEXPORT void ui_webview_args_free(UiWebviewArgs *args); #ifdef __cplusplus
--- a/ui/ui/container.h Thu Feb 12 15:54:48 2026 +0100 +++ b/ui/ui/container.h Sat Feb 21 20:02:31 2026 +0100 @@ -213,6 +213,8 @@ UiInteger *value; const char* varname; int max_panes; + + const int *visibility_states; } UiSplitPaneArgs; typedef struct UiItemListContainerArgs {
--- a/ui/ui/entry.h Thu Feb 12 15:54:48 2026 +0100 +++ b/ui/ui/entry.h Sat Feb 21 20:02:31 2026 +0100 @@ -66,6 +66,7 @@ void* onchangedata; const int *states; + const int *visibility_states;; } UiSpinBoxArgs;
--- a/ui/ui/list.h Thu Feb 12 15:54:48 2026 +0100 +++ b/ui/ui/list.h Sat Feb 21 20:02:31 2026 +0100 @@ -181,6 +181,7 @@ void *onsavedata; const int *states; + const int *visibility_states; }; typedef void (*ui_sublist_getvalue_func)(UiList *list, void *sublist_userdata, void *rowdata, int index, UiSubListItem *item, void *userdata); @@ -296,6 +297,8 @@ void *onbuttonclickdata; UiMenuBuilder *contextmenu; + + const int *visibility_states;; }; #define UI_SUBLIST(...) (UiSubList){ __VA_ARGS__ }