DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR Pending]

Link: http://www.fltk.org/str.php?L2221
Version: 1.3-feature
Fix Version: 1.3.0 (r6951)


Hi Matt: could you, please, enter this last patch to file
Fl_cocoa.mm (in its doCallback function) that makes
radio items of fl_sys_menu_bar work correctly when
series of items are separated by a divider line.
Thanks. Manolo.


svn diff Fl_cocoa.mm
Index: Fl_cocoa.mm
===================================================================
--- Fl_cocoa.mm (revision 6985)
+++ Fl_cocoa.mm (working copy)
@@ -2899,15 +2899,22 @@
       }
     else if ( item->flags & FL_MENU_RADIO ) {// update the menu radio
symbols
       int from = flRank;
-      while(from > 0 && items[from - 1].flags & FL_MENU_RADIO) from--;
+      while( from > 0 && items[from - 1].label() && (items[from -
1].flags & FL_MENU_RADIO) &&
+           !(items[from - 1].flags & FL_MENU_DIVIDER) ) {
+       from--;
+       }
       int to = flRank;
-      while(items[to + 1].flags & FL_MENU_RADIO) to++;
+      while( !(items[to].flags & FL_MENU_DIVIDER) && items[to +
1].label() && 
+           (items[to + 1].flags & FL_MENU_RADIO) ) {
+       to++;
+       }
       NSMenu *nsmenu = [self menu];
       int nsrank = (int)[nsmenu indexOfItem:self];
       for(int i =  from - flRank + nsrank ; i <= to - flRank + nsrank;
i++) {
-       [[nsmenu itemAtIndex:i] setState:NSOffState];
+       NSMenuItem *nsitem = [nsmenu itemAtIndex:i];
+       if(nsitem != self) [nsitem setState:NSOffState];
+       else [nsitem setState:(item->value() ? NSOnState : NSOffState) ];
        }
-      if(item->value()) [self setState:NSOnState];    
       }
   }
 }


Link: http://www.fltk.org/str.php?L2221
Version: 1.3-feature
Fix Version: 1.3.0 (r6951)

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

Reply via email to