--- a/ui/cocoa/Toolbar.m Tue Jun 02 20:14:14 2026 +0200 +++ b/ui/cocoa/Toolbar.m Wed Jun 03 19:07:24 2026 +0200 @@ -39,7 +39,21 @@ } +static void toolitem_set_enabled(void *item, int enabled) { + NSToolbarItem *i = (__bridge NSToolbarItem*)item; + i.enabled = enabled; +} +static void toolitem_bind_action(UiContext *ctx, NSToolbarItem *item, const char *action) { + if(action) { + void *widget = (__bridge void*)item; + uic_bind_action(ctx, action, widget, (ui_enablefunc)toolitem_set_enabled); + UiAction *ui_action = uic_resolve_action(ctx, action); + if(!ui_action) { + toolitem_set_enabled(widget, FALSE); + } + } +} /* --------------------- UiToolbar --------------------- */ @@ -219,12 +233,14 @@ button.image = ui_cocoa_named_icon(item->args.icon); } - if(item->args.onclick) { + if(item->args.onclick || item->args.action) { EventData *event = [[EventData alloc] init:item->args.onclick userdata:item->args.onclickdata action:item->args.action]; event.obj = obj; button.target = event; button.action = @selector(handleEvent:); objc_setAssociatedObject(button, "eventdata", event, OBJC_ASSOCIATION_RETAIN); + + toolitem_bind_action(obj->ctx, button, item->args.action); } return button; }