add action to button/text widget args default tip

Fri, 17 Apr 2026 14:50:31 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Fri, 17 Apr 2026 14:50:31 +0200
changeset 1093
1686de34a489
parent 1092
0accf125a65f

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;

mercurial