ui/gtk/toolbar.c

changeset 1111
3910be3b2ac6
parent 1028
925a345ea298
--- a/ui/gtk/toolbar.c	Fri Apr 24 14:47:37 2026 +0200
+++ b/ui/gtk/toolbar.c	Fri Apr 24 18:17:20 2026 +0200
@@ -140,13 +140,14 @@
     
     ui_set_widget_nstates(obj->ctx, GTK_WIDGET(button), item->args.states, item->nstates);
     
-    if(item->args.onclick) {
+    if(item->args.onclick || item->args.action) {
         UiEventData *event = cxMalloc(
                 obj->ctx->allocator,
                 sizeof(UiEventData));
         event->obj = obj;
         event->callback = item->args.onclick;
         event->userdata = item->args.onclickdata;
+        event->action = item->args.action ? ui_strdup(obj->ctx, item->args.action) : NULL;
         event->customdata = NULL;
         event->customint = 0;
         event->value = 0;
@@ -202,6 +203,7 @@
     event->obj = obj;
     event->callback = item->args.onchange;
     event->userdata = item->args.onchangedata;
+    event->action = item->args.action ? ui_strdup(obj->ctx, item->args.action) : NULL;;
     event->var = var;
 
     g_signal_connect(
@@ -239,6 +241,10 @@
     if(i) {
         ui_notify_evt(i->observers, &e);
     }
+    
+    if(event->action) {
+        uic_action_callback(&e, event->action);
+    }
 }
 
 int64_t ui_tool_toggle_button_get(UiInteger *integer) {

mercurial