Fri, 17 Apr 2026 14:50:31 +0200
add action to button/text widget args
| ui/common/args.c | file | annotate | diff | comparison | revisions | |
| ui/common/args.h | file | annotate | diff | comparison | revisions | |
| ui/ui/button.h | file | annotate | diff | comparison | revisions | |
| ui/ui/text.h | file | annotate | diff | comparison | revisions |
--- a/ui/common/args.c Fri Apr 17 13:21:11 2026 +0200 +++ b/ui/common/args.c Fri Apr 17 14:50:31 2026 +0200 @@ -215,9 +215,14 @@ args->onclickdata = onclickdata; } +void ui_menuitem_args_set_action(UiMenuItemArgs *args, const char *action) { + args->action = strdup(action); +} + void ui_menuitem_args_free(UiMenuItemArgs *args) { free((void*)args->label); free((void*)args->icon); + free((void*)args->action); free(args); } @@ -250,10 +255,15 @@ args->onchangedata = onclickdata; } +void ui_menutoggleitem_args_set_action(UiMenuToggleItemArgs *args, const char *action) { + args->action = strdup(action); +} + void ui_menutoggleitem_args_free(UiMenuToggleItemArgs *args) { free((void*)args->label); free((void*)args->icon); free((void*)args->varname); + free((void*)args->action); free(args); } @@ -1440,6 +1450,10 @@ args->onclickdata = onclickdata; } +void ui_button_args_set_action(UiButtonArgs *args, const char *action) { + args->action = strdup(action); +} + void ui_button_args_set_states(UiButtonArgs *args, int *states, int numstates) { args->states = calloc(numstates+1, sizeof(int)); memcpy((void*)args->states, states, numstates * sizeof(int)); @@ -1458,6 +1472,7 @@ free((void*)args->label); free((void*)args->icon); free((void*)args->tooltip); + free((void*)args->action); free((void*)args->states); free((void*)args->visibility_states); free(args); @@ -1558,6 +1573,10 @@ args->onchangedata = onchangedata; } +void ui_toggle_args_set_action(UiToggleArgs *args, const char *action) { + args->action = strdup(action); +} + void ui_toggle_args_set_varname(UiToggleArgs *args, const char *varname) { args->varname = strdup(varname); } @@ -1589,6 +1608,7 @@ free((void*)args->icon); free((void*)args->tooltip); free((void*)args->varname); + free((void*)args->action); free((void*)args->states); free((void*)args->visibility_states); free(args); @@ -1688,6 +1708,10 @@ args->onclickdata = userdata; } +void ui_linkbutton_args_set_action(UiLinkButtonArgs *args, const char *action) { + args->action = strdup(action); +} + void ui_linkbutton_args_set_nofollow(UiLinkButtonArgs *args, UiBool value) { args->nofollow = value; } @@ -1721,6 +1745,7 @@ free((void*)args->style_class); free((void*)args->label); free((void*)args->uri); + free((void*)args->action); free((void*)args->varname); free((void*)args->states); free(args); @@ -2286,6 +2311,14 @@ args->onactivatedata = onactivatedata; } +void ui_textfield_args_set_onactivate_action(UiTextFieldArgs *args, const char *action) { + args->onactivate_action = strdup(action); +} + +void ui_textfield_args_set_onchange_action(UiTextFieldArgs *args, const char *action) { + args->onchange_action = action; +} + void ui_textfield_args_set_varname(UiTextFieldArgs *args, const char *varname) { args->varname = strdup(varname); } @@ -2310,6 +2343,8 @@ free((void*)args->name); free((void*)args->style_class); free((void*)args->varname); + free((void*)args->onactivate_action); + free((void*)args->onchange_action); free((void*)args->states); free((void*)args->visibility_states); free(args);
--- a/ui/common/args.h Fri Apr 17 13:21:11 2026 +0200 +++ b/ui/common/args.h Fri Apr 17 14:50:31 2026 +0200 @@ -83,6 +83,7 @@ UIEXPORT void ui_menuitem_args_set_icon(UiMenuItemArgs *args, const char *icon); UIEXPORT void ui_menuitem_args_set_onclick(UiMenuItemArgs *args, ui_callback callback); UIEXPORT void ui_menuitem_args_set_onclickdata(UiMenuItemArgs *args, void *onclickdata); +UIEXPORT void ui_menuitem_args_set_action(UiMenuItemArgs *args, const char *action); UIEXPORT void ui_menuitem_args_free(UiMenuItemArgs *args); UIEXPORT UiMenuToggleItemArgs* ui_menutoggleitem_args_new(void); @@ -91,6 +92,7 @@ UIEXPORT void ui_menutoggleitem_args_set_varname(UiMenuToggleItemArgs *args, const char *varname); UIEXPORT void ui_menutoggleitem_args_set_onchange(UiMenuToggleItemArgs *args, ui_callback callback); UIEXPORT void ui_menutoggleitem_args_set_onchangedata(UiMenuToggleItemArgs *args, void *onchangedata); +UIEXPORT void ui_menutoggleitem_args_set_action(UiMenuToggleItemArgs *args, const char *action); UIEXPORT void ui_menutoggleitem_args_free(UiMenuToggleItemArgs *args); UIEXPORT UiMenuItemListArgs* ui_menuitemlist_args_new(void); @@ -353,6 +355,7 @@ UIEXPORT void ui_button_args_set_labeltype(UiButtonArgs *args, int labeltype); 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_action(UiButtonArgs *args, const char *action); 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); @@ -379,6 +382,7 @@ UIEXPORT void ui_toggle_args_set_labeltype(UiToggleArgs *args, int labeltype); UIEXPORT void ui_toggle_args_set_onchange(UiToggleArgs *args, ui_callback callback); UIEXPORT void ui_toggle_args_set_onchangedata(UiToggleArgs *args, void *onchangedata); +UIEXPORT void ui_toggle_args_set_action(UiToggleArgs *args, const char *action); UIEXPORT void ui_toggle_args_set_varname(UiToggleArgs *args, const char *varname); UIEXPORT void ui_toggle_args_set_value(UiToggleArgs *args, UiInteger *value); UIEXPORT void ui_toggle_args_set_enablestate(UiToggleArgs *args, int state); @@ -408,6 +412,7 @@ UIEXPORT void ui_linkbutton_args_set_uri(UiLinkButtonArgs *args, const char *uri); UIEXPORT void ui_linkbutton_args_set_onclick(UiLinkButtonArgs *args, ui_callback callback); UIEXPORT void ui_linkbutton_args_set_onclickdata(UiLinkButtonArgs *args, void *userdata); +UIEXPORT void ui_linkbutton_args_set_action(UiLinkButtonArgs *args, const char *action); 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); @@ -506,6 +511,7 @@ UIEXPORT void ui_textarea_args_set_style_class(UiTextAreaArgs *args, const char *classname); UIEXPORT void ui_textarea_args_set_onchange(UiTextAreaArgs *args, ui_callback callback); UIEXPORT void ui_textarea_args_set_onchangedata(UiTextAreaArgs *args, void *onchangedata); +UIEXPORT void ui_textarea_args_set_action(UiTextAreaArgs *args, const char *action); 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); @@ -532,6 +538,8 @@ UIEXPORT void ui_textfield_args_set_onchangedata(UiTextFieldArgs *args, void *onchangedata); UIEXPORT void ui_textfield_args_set_onactivate(UiTextFieldArgs *args, ui_callback callback); UIEXPORT void ui_textfield_args_set_onactivatedata(UiTextFieldArgs *args, void *onactivatedata); +UIEXPORT void ui_textfield_args_set_onactivate_action(UiTextFieldArgs *args, const char *action); +UIEXPORT void ui_textfield_args_set_onchange_action(UiTextFieldArgs *args, const char *action); 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);
--- a/ui/ui/button.h Fri Apr 17 13:21:11 2026 +0200 +++ b/ui/ui/button.h Fri Apr 17 14:50:31 2026 +0200 @@ -63,7 +63,8 @@ const char *tooltip; UiLabelType labeltype; ui_callback onclick; - void *onclickdata; + void *onclickdata; + const char *action; const int *states; const int *visibility_states; @@ -86,18 +87,19 @@ const char *name; const char *style_class; - const char *label; - const char *icon; - const char *tooltip; + const char *label; + const char *icon; + const char *tooltip; UiLabelType labeltype; - UiInteger *value; - const char *varname; + UiInteger *value; + const char *varname; ui_callback onchange; - void *onchangedata; - int enable_state; + void *onchangedata; + const char *action; + int enable_state; - const int *states; - const int *visibility_states; + const int *states; + const int *visibility_states; } UiToggleArgs; typedef struct UiLinkButtonArgs { @@ -123,6 +125,7 @@ const char *varname; ui_callback onclick; void *onclickdata; + const char *action; UiBool nofollow; UiLinkType type;
--- a/ui/ui/text.h Fri Apr 17 13:21:11 2026 +0200 +++ b/ui/ui/text.h Fri Apr 17 14:50:31 2026 +0200 @@ -58,6 +58,7 @@ const char *varname; ui_callback onchange; void *onchangedata; + const char *action; const int *states; const int *visibility_states; @@ -87,6 +88,8 @@ void *onchangedata; ui_callback onactivate; void *onactivatedata; + const char *onactivate_action; + const char *onchange_action; const int *states; const int *visibility_states; @@ -129,6 +132,7 @@ ui_callback onactivate; void *onactivatedata; + const char *action; ui_callback ondragstart; void *ondragstartdata;