diff options
| author | Manolo Gouy <Manolo> | 2012-01-12 12:49:58 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2012-01-12 12:49:58 +0000 |
| commit | 2d4cf9e26be280cfff15d236dabeeb04a2816ab7 (patch) | |
| tree | c72b07893f9b75c4a6434dd7082ea32a38ed6157 /src | |
| parent | 4be97ea19c9a8a83e2831eedd1829da4ac381ba7 (diff) | |
Some code simplifications.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9220 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_cocoa.mm | 54 |
1 files changed, 24 insertions, 30 deletions
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index ed8d47577..3aff1005f 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -2960,37 +2960,31 @@ static void createAppleMenu(void) { fl_lock_function(); const Fl_Menu_Item *item = [self getFlItem]; - NSMenu* menu = [self menu]; - NSInteger flRank = [menu indexOfItem:self]; - NSInteger last = [menu numberOfItems]; - if (item) { - fl_sys_menu_bar->picked(item); - if ( item->flags & FL_MENU_TOGGLE ) { // update the menu toggle symbol - [self setState:(item->value() ? NSOnState : NSOffState)]; - } - else if ( item->flags & FL_MENU_RADIO ) { // update the menu radio symbols - const Fl_Menu_Item *item2; - int from = flRank; - while(from > 0) { - if ([[menu itemAtIndex:from-1] isSeparatorItem]) break; - item2 = [(FLMenuItem*)[menu itemAtIndex:from-1] getFlItem]; - if ( !(item2->flags & FL_MENU_RADIO) ) break; - from--; - } - int to = flRank; - while (to+1 < last) { - if ([[menu itemAtIndex:to+1] isSeparatorItem]) break; - item2 = [(FLMenuItem*)[menu itemAtIndex:to+1] getFlItem]; - if (!(item2->flags & FL_MENU_RADIO)) break; - to++; - } - NSMenu *nsmenu = [self menu]; - int nsrank = (int)[nsmenu indexOfItem:self]; - for(int i = from - flRank + nsrank ; i <= to - flRank + nsrank; i++) { - NSMenuItem *nsitem = [nsmenu itemAtIndex:i]; - if (nsitem != self) [nsitem setState:NSOffState]; - else [nsitem setState:(item->value() ? NSOnState : NSOffState) ]; + fl_sys_menu_bar->picked(item); + if ( item->flags & FL_MENU_TOGGLE ) { // update the menu toggle symbol + [self setState:(item->value() ? NSOnState : NSOffState)]; + } + else if ( item->flags & FL_MENU_RADIO ) { // update the menu radio symbols + NSMenu* menu = [self menu]; + NSInteger flRank = [menu indexOfItem:self]; + NSInteger last = [menu numberOfItems] - 1; + int from = flRank; + while(from > 0) { + if ([[menu itemAtIndex:from-1] isSeparatorItem]) break; + item = [(FLMenuItem*)[menu itemAtIndex:from-1] getFlItem]; + if ( !(item->flags & FL_MENU_RADIO) ) break; + from--; } + int to = flRank; + while (to < last) { + if ([[menu itemAtIndex:to+1] isSeparatorItem]) break; + item = [(FLMenuItem*)[menu itemAtIndex:to+1] getFlItem]; + if (!(item->flags & FL_MENU_RADIO)) break; + to++; + } + for(int i = from; i <= to; i++) { + NSMenuItem *nsitem = [menu itemAtIndex:i]; + [nsitem setState:(nsitem != self ? NSOffState : NSOnState)]; } } fl_unlock_function(); |
