add button tooltips (GTK)

Sun, 12 Oct 2025 08:07:27 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 12 Oct 2025 08:07:27 +0200
changeset 838
934534c367a4
parent 837
e1888ccd7872
child 839
f1b5e7dd27b9

add button tooltips (GTK)

ui/common/args.c file | annotate | diff | comparison | revisions
ui/common/args.h file | annotate | diff | comparison | revisions
ui/gtk/button.c file | annotate | diff | comparison | revisions
ui/ui/button.h file | annotate | diff | comparison | revisions
--- 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);
--- 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);
--- 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,
--- 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__ } )

mercurial