diff -r f8f22eb0b575 -r 2dda1ad6dc7a ui/cocoa/menu.m --- a/ui/cocoa/menu.m Wed Apr 02 13:21:11 2014 +0200 +++ b/ui/cocoa/menu.m Wed Apr 02 20:31:47 2014 +0200 @@ -29,6 +29,7 @@ #import #import #import +#import #import "menu.h" #import "window.h" @@ -78,6 +79,43 @@ @end +@implementation UiGroupMenuItem + +- (id)initWithTitle:(NSString*)title action:(SEL)action keyEquivalent:(NSString*)s { + [super initWithTitle:title action:action keyEquivalent:s]; + groups = [[NSMutableArray alloc]initWithCapacity: 16]; + return self; +} + +- (void) addGroup:(int)group { + NSNumber *groupNumber = [NSNumber numberWithInteger:group]; + [groups addObject:groupNumber]; +} + +- (void) checkGroups:(int*)g count:(int)n { + int c = [groups count]; + + char *check = calloc(1, c); + for(int i=0;ilabel + action:@selector(handleEvent:) + keyEquivalent:si->keyEquivalent]; + [item setTarget:event]; - NSMenuItem *item = [currentMenu addItemWithTitle:si->label - action:@selector(handleEvent:) keyEquivalent:si->keyEquivalent]; - [item setTarget:event]; + // add groups + va_list ap; + va_start(ap, userdata); + int group; + while((group = va_arg(ap, int)) != -1) { + [item addGroup: group]; + } + + + [currentMenu addItem:item]; currentItemIndex++; }