ui/cocoa/Toolbar.m

changeset 1144
6e9da0736c33
parent 1099
a5057a367c8f
child 1162
3a2bf1795579
equal deleted inserted replaced
1143:218ada0d4017 1144:6e9da0736c33
241 button.paletteLabel = label; 241 button.paletteLabel = label;
242 button.label = label; 242 button.label = label;
243 } 243 }
244 objc_setAssociatedObject(button, "eventdata", event, OBJC_ASSOCIATION_RETAIN); 244 objc_setAssociatedObject(button, "eventdata", event, OBJC_ASSOCIATION_RETAIN);
245 245
246 NSSegmentedControl *seg; 246 NSSegmentedControl *seg = nil;
247 if(!item->args.icon) { 247 if(!item->args.icon) {
248 NSArray *labels = @[[[NSString alloc] initWithUTF8String:item->args.label]]; 248 if(item->args.label) {
249 seg = [NSSegmentedControl segmentedControlWithLabels:labels trackingMode:NSSegmentSwitchTrackingSelectAny target:event action:@selector(handleEvent:)]; 249 NSArray *labels = @[[[NSString alloc] initWithUTF8String:item->args.label]];
250 button.view = seg; 250 seg = [NSSegmentedControl segmentedControlWithLabels:labels trackingMode:NSSegmentSwitchTrackingSelectAny target:event action:@selector(handleEvent:)];
251 button.view = seg;
252 } else {
253 NSLog(@"UI Error: toggle button has no icon or label");
254 }
251 } else { 255 } else {
252 NSArray *images = @[ui_cocoa_named_icon(item->args.icon)]; 256 NSImage *image = ui_cocoa_named_icon(item->args.icon);
253 seg = [NSSegmentedControl segmentedControlWithImages:images trackingMode:NSSegmentSwitchTrackingSelectAny target:event action:@selector(handleEvent:)]; 257 if(image != nil) {
258 NSArray *images = @[image];
259 seg = [NSSegmentedControl segmentedControlWithImages:images trackingMode:NSSegmentSwitchTrackingSelectAny target:event action:@selector(handleEvent:)];
260 } else {
261 NSLog(@"UI Error: icon %s not found", item->args.icon);
262 }
254 } 263 }
255 button.view = seg; 264 button.view = seg;
256 265
257 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, NULL, item->args.varname, UI_VAR_INTEGER); 266 UiVar* var = uic_widget_var(obj->ctx, obj->ctx, NULL, item->args.varname, UI_VAR_INTEGER);
258 if(var) { 267 if(var) {
263 [seg setEnabled:YES forSegment:0]; 272 [seg setEnabled:YES forSegment:0];
264 } 273 }
265 274
266 } 275 }
267 i->obj = (__bridge void*)seg; 276 i->obj = (__bridge void*)seg;
268 printf("seg: %p\n", seg);
269 i->get = ui_toolbar_seg_toggleitem_get; 277 i->get = ui_toolbar_seg_toggleitem_get;
270 i->set = ui_toolbar_seg_toggleitem_set; 278 i->set = ui_toolbar_seg_toggleitem_set;
271 } 279 }
272 280
273 return button; 281 return button;

mercurial