summaryrefslogtreecommitdiff
path: root/src/Fl_Sys_Menu_Bar.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_Sys_Menu_Bar.cxx')
-rw-r--r--src/Fl_Sys_Menu_Bar.cxx25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/Fl_Sys_Menu_Bar.cxx b/src/Fl_Sys_Menu_Bar.cxx
index bc60458..d630fb3 100644
--- a/src/Fl_Sys_Menu_Bar.cxx
+++ b/src/Fl_Sys_Menu_Bar.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Sys_Menu_Bar.cxx 4651 2005-11-25 14:50:22Z mike $"
+// "$Id: Fl_Sys_Menu_Bar.cxx 5617 2007-01-18 19:20:13Z matt $"
//
// MacOS system menu bar widget for the Fast Light Tool Kit (FLTK).
//
@@ -178,8 +178,6 @@ static void catMenuFlags( const Fl_Menu_Item *m, char *dst )
{
if ( !m->flags )
return;
- while ( *dst )
- dst++;
if ( m->flags & FL_MENU_INACTIVE )
strcat( dst, "(" );
}
@@ -245,27 +243,32 @@ void Fl_Sys_Menu_Bar::menu(const Fl_Menu_Item *m)
fl_sys_menu_bar = this;
char buf[255];
- int cnt = 1; // first menu is no 2. no 1 is the Apple Menu
+ int cnt = 1; // first menu is no 2. no 1 is the Apple Menu
const Fl_Menu_Item *mm = m;
for (;;)
{
- if ( !mm->text )
+ if ( !mm || !mm->text )
break;
+ char visible = mm->visible() ? 1 : 0;
buf[1] = 0;
catMenuText( mm->text, buf+1 );
buf[0] = strlen( buf+1 );
MenuHandle mh = NewMenu( ++cnt, (unsigned char*)buf );
+ if ( mm->flags & FL_MENU_INACTIVE ) {
+ ChangeMenuAttributes(mh, kMenuAttrAutoDisable, 0);
+ DisableAllMenuItems(mh);
+ DisableMenuItem(mh, 0);
+ }
if ( mm->flags & FL_SUBMENU )
createSubMenu( mh, cnt, ++mm );
- else if ( mm->flags & FL_SUBMENU_POINTER )
- {
+ else if ( mm->flags & FL_SUBMENU_POINTER ) {
const Fl_Menu_Item *smm = (Fl_Menu_Item*)mm->user_data_;
createSubMenu( mh, cnt, smm );
}
-
- InsertMenu( mh, 0 );
- if ( mm->flags & FL_MENU_INACTIVE ) DisableMenuItem( mh, 0 );
+ if ( visible ) {
+ InsertMenu( mh, 0 );
+ }
mm++;
}
DrawMenuBar();
@@ -325,5 +328,5 @@ int Fl_Menu_Bar::handle(int event) {
#endif /* __APPLE__ */
//
-// End of "$Id: Fl_Sys_Menu_Bar.cxx 4651 2005-11-25 14:50:22Z mike $".
+// End of "$Id: Fl_Sys_Menu_Bar.cxx 5617 2007-01-18 19:20:13Z matt $".
//