# HG changeset patch # User Olaf Wintermann # Date 1760249247 -7200 # Node ID 934534c367a45534d7f2ef54523c128d49423991 # Parent e1888ccd7872d88a3c154876b0bf4a3dd0c24303 add button tooltips (GTK) diff -r e1888ccd7872 -r 934534c367a4 ui/common/args.c --- a/ui/common/args.c Sun Oct 12 08:03:34 2025 +0200 +++ b/ui/common/args.c Sun Oct 12 08:07:27 2025 +0200 @@ -1367,6 +1367,9 @@ args->icon = strdup(icon); } +void ui_button_args_set_tooltip(UiButtonArgs *args, const char *tooltip) { + args->tooltip = strdup(tooltip); +} void ui_button_args_set_labeltype(UiButtonArgs *args, int labeltype){ args->labeltype = labeltype; @@ -1391,6 +1394,7 @@ free((void*)args->style_class); free((void*)args->label); free((void*)args->icon); + free((void*)args->tooltip); free((void*)args->groups); free(args); } @@ -1474,6 +1478,9 @@ args->icon = strdup(icon); } +void ui_toggle_args_set_tooltip(UiToggleArgs *args, const char *tooltip) { + args->tooltip = strdup(tooltip); +} void ui_toggle_args_set_labeltype(UiToggleArgs *args, int labeltype){ args->labeltype = labeltype; @@ -1483,7 +1490,6 @@ args->onchange = callback; } - void ui_toggle_args_set_onchangedata(UiToggleArgs *args, void *onchangedata){ args->onchangedata = onchangedata; } @@ -1511,6 +1517,7 @@ free((void*)args->style_class); free((void*)args->label); free((void*)args->icon); + free((void*)args->tooltip); free((void*)args->varname); free((void*)args->groups); free(args); diff -r e1888ccd7872 -r 934534c367a4 ui/common/args.h --- a/ui/common/args.h Sun Oct 12 08:03:34 2025 +0200 +++ b/ui/common/args.h Sun Oct 12 08:07:27 2025 +0200 @@ -342,6 +342,7 @@ UIEXPORT void ui_button_args_set_style_class(UiButtonArgs *args, const char *classname); UIEXPORT void ui_button_args_set_label(UiButtonArgs *args, const char *label); UIEXPORT void ui_button_args_set_icon(UiButtonArgs *args, const char *icon); +UIEXPORT void ui_button_args_set_tooltip(UiButtonArgs *args, const char *tooltip); 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); @@ -366,6 +367,7 @@ UIEXPORT void ui_toggle_args_set_style_class(UiToggleArgs *args, const char *classname); UIEXPORT void ui_toggle_args_set_label(UiToggleArgs *args, const char *label); UIEXPORT void ui_toggle_args_set_icon(UiToggleArgs *args, const char *icon); +UIEXPORT void ui_toggle_args_set_tooltip(UiToggleArgs *args, const char *tooltip); 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); diff -r e1888ccd7872 -r 934534c367a4 ui/gtk/button.c --- a/ui/gtk/button.c Sun Oct 12 08:03:34 2025 +0200 +++ b/ui/gtk/button.c Sun Oct 12 08:07:27 2025 +0200 @@ -104,7 +104,7 @@ } UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args) { - GtkWidget *button = ui_create_button(obj, args->label, args->icon, NULL/*tooltip*/, args->onclick, args->onclickdata, 0, FALSE); + GtkWidget *button = ui_create_button(obj, args->label, args->icon, args->tooltip, args->onclick, args->onclickdata, 0, FALSE); ui_set_name_and_style(button, args->name, args->style_class); ui_set_widget_groups(obj->ctx, button, args->groups); UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; @@ -303,7 +303,7 @@ widget, args->label, args->icon, - NULL, // tooltip + args->tooltip, args->varname, args->value, args->onchange, diff -r e1888ccd7872 -r 934534c367a4 ui/ui/button.h --- a/ui/ui/button.h Sun Oct 12 08:03:34 2025 +0200 +++ b/ui/ui/button.h Sun Oct 12 08:07:27 2025 +0200 @@ -58,13 +58,14 @@ const char *name; const char *style_class; - const char* label; - const char* icon; + const char *label; + const char *icon; + const char *tooltip; UiLabelType labeltype; ui_callback onclick; - void* onclickdata; + void *onclickdata; - const int* groups; + const int *groups; } UiButtonArgs; typedef struct UiToggleArgs { @@ -84,16 +85,17 @@ const char *name; const char *style_class; - const char* label; - const char* icon; + 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; + void *onchangedata; int enable_group; - const int* groups; + const int *groups; } UiToggleArgs; typedef struct UiLinkButtonArgs { @@ -122,7 +124,7 @@ UiBool nofollow; UiLinkType type; - const int* groups; + const int *groups; } UiLinkButtonArgs; #define ui_button(obj, ...) ui_button_create(obj, &(UiButtonArgs){ __VA_ARGS__ } )