ui/cocoa/Toolbar.m

changeset 1144
6e9da0736c33
parent 1099
a5057a367c8f
child 1162
3a2bf1795579
--- a/ui/cocoa/Toolbar.m	Wed May 27 15:04:53 2026 +0200
+++ b/ui/cocoa/Toolbar.m	Wed May 27 15:16:32 2026 +0200
@@ -243,14 +243,23 @@
     }
     objc_setAssociatedObject(button, "eventdata", event, OBJC_ASSOCIATION_RETAIN);
     
-    NSSegmentedControl *seg;
+    NSSegmentedControl *seg = nil;
     if(!item->args.icon) {
-        NSArray *labels = @[[[NSString alloc] initWithUTF8String:item->args.label]];
-        seg = [NSSegmentedControl segmentedControlWithLabels:labels trackingMode:NSSegmentSwitchTrackingSelectAny target:event action:@selector(handleEvent:)];
-        button.view = seg;
+        if(item->args.label) {
+            NSArray *labels = @[[[NSString alloc] initWithUTF8String:item->args.label]];
+            seg = [NSSegmentedControl segmentedControlWithLabels:labels trackingMode:NSSegmentSwitchTrackingSelectAny target:event action:@selector(handleEvent:)];
+            button.view = seg;
+        } else {
+            NSLog(@"UI Error: toggle button has no icon or label");
+        }
     } else {
-        NSArray *images = @[ui_cocoa_named_icon(item->args.icon)];
-        seg = [NSSegmentedControl segmentedControlWithImages:images trackingMode:NSSegmentSwitchTrackingSelectAny target:event action:@selector(handleEvent:)];
+        NSImage *image = ui_cocoa_named_icon(item->args.icon);
+        if(image != nil) {
+            NSArray *images = @[image];
+            seg = [NSSegmentedControl segmentedControlWithImages:images trackingMode:NSSegmentSwitchTrackingSelectAny target:event action:@selector(handleEvent:)];
+        } else {
+            NSLog(@"UI Error: icon %s not found", item->args.icon);
+        }
     }
     button.view = seg;
     
@@ -265,7 +274,6 @@
             
         }
         i->obj = (__bridge void*)seg;
-        printf("seg: %p\n", seg);
         i->get = ui_toolbar_seg_toggleitem_get;
         i->set = ui_toolbar_seg_toggleitem_set;
     }

mercurial