Author: manolo
Date: 2012-01-12 04:59:29 -0800 (Thu, 12 Jan 2012)
New Revision: 9221
Log:
Some code simplifications.

Modified:
   branches/branch-3.0/src/fltk3/cocoa.mm

Modified: branches/branch-3.0/src/fltk3/cocoa.mm
===================================================================
--- branches/branch-3.0/src/fltk3/cocoa.mm      2012-01-12 12:49:58 UTC (rev 
9220)
+++ branches/branch-3.0/src/fltk3/cocoa.mm      2012-01-12 12:59:29 UTC (rev 
9221)
@@ -2944,9 +2944,9 @@
 }
 
 @interface FLMenuItem : NSMenuItem 
+- (const fltk3::MenuItem*) getFlItem;
 - (void) doCallback:(id)unused;
 - (void) directCallback:(id)unused;
-- (const fltk3::MenuItem*) getFlItem;
 @end
 @implementation FLMenuItem
 - (const fltk3::MenuItem*) getFlItem
@@ -2957,38 +2957,32 @@
 {
   fl_lock_function();
   const fltk3::MenuItem *item = [self getFlItem];
-  NSMenu* menu = [self menu];
-  NSInteger flRank = [menu indexOfItem:self];
-  NSInteger last = [menu numberOfItems];
-  if (item) {
-    fltk3::sys_menu_bar->picked(item);
-    if ( item->flags & fltk3::MENU_TOGGLE ) {  // update the menu toggle symbol
-      [self setState:(item->value() ? NSOnState : NSOffState)];
+  fltk3::sys_menu_bar->picked(item);
+  if ( item->flags & fltk3::MENU_TOGGLE ) {    // update the menu toggle symbol
+    [self setState:(item->value() ? NSOnState : NSOffState)];
+  }
+  else if ( item->flags & fltk3::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 & fltk3::MENU_RADIO) ) break;
+      from--;
     }
-    else if ( item->flags & fltk3::MENU_RADIO ) {      // update the menu 
radio symbols
-      const fltk3::MenuItem *item2;
-      int from = flRank;
-      while(from > 0) {
-       if ([[menu itemAtIndex:from-1] isSeparatorItem]) break;
-       item2 = [(FLMenuItem*)[menu itemAtIndex:from-1] getFlItem];
-       if ( !(item2->flags & fltk3::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 & fltk3::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) ];
-      }
+    int to = flRank;
+    while (to < last) {
+      if ([[menu itemAtIndex:to+1] isSeparatorItem]) break;
+      item = [(FLMenuItem*)[menu itemAtIndex:to+1] getFlItem];
+      if (!(item->flags & fltk3::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();
 }

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to