// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "menu.h"
#pragma implementation "menuitem.h"
#endif
// wxWidgets headers
// -----------------
+#include "wx/wxprec.h"
+
#include "wx/app.h"
#include "wx/menu.h"
#include "wx/menuitem.h"
}
-wxMenuBar::wxMenuBar(int count, wxMenu *menus[], const wxString titles[])
+wxMenuBar::wxMenuBar(size_t count, wxMenu *menus[], const wxString titles[], long WXUNUSED(style))
{
Init();
m_titles.Alloc(count);
- for ( int i = 0; i < count; i++ )
+ for ( size_t i = 0; i < count; i++ )
{
m_menus.Append(menus[i]);
m_titles.Add(titles[i]);
else
EnableMenuCommand( NULL , kHICommandPreferences ) ;
}
+ // Unlike preferences which may or may not exist, the Quit item should be always
+ // enabled unless it is added by the application and then disabled, otherwise
+ // a program would be required to add an item with wxID_EXIT in order to get the
+ // Quit menu item to be enabled, which seems a bit burdensome.
+ if ( UMAGetSystemVersion() >= 0x1000 && wxApp::s_macExitMenuItemId)
+ {
+ wxMenuItem *item = FindItem( wxApp::s_macExitMenuItemId , NULL ) ;
+ if ( item != NULL && !(item->IsEnabled()) )
+ DisableMenuCommand( NULL , kHICommandQuit ) ;
+ else
+ EnableMenuCommand( NULL , kHICommandQuit ) ;
+ }
#endif
wxMenuList::compatibility_iterator menuIter = m_menus.GetFirst();
//
}
-// ---------------------------------------------------------------------------
-// wxMenuBar construction
-// ---------------------------------------------------------------------------
-
// ---------------------------------------------------------------------------
// wxMenuBar construction
// ---------------------------------------------------------------------------
{
if (s_macInstalledMenuBar == this)
{
+ menu->MacBeforeDisplay( false ) ;
::InsertMenu( MAC_WXHMENU(menu->GetHMenu()) , 0 ) ;
}