menu fixes, also fixes #10479

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2009-02-08 11:49:46 +00:00
parent c0c133e13b
commit 1ea5ef0190
3 changed files with 17 additions and 11 deletions

View File

@@ -189,6 +189,7 @@ private:
static wxMenuBar* s_macCommonMenuBar ;
wxMenu* m_rootMenu;
wxMenu* m_appleMenu;
DECLARE_DYNAMIC_CLASS(wxMenuBar)
};

View File

@@ -503,18 +503,17 @@ void wxMenuBar::Init()
m_menuBarFrame = NULL;
m_invokingWindow = NULL;
m_rootMenu = new wxMenu();
wxMenu* applemenu = new wxMenu();
applemenu->SetAllowRearrange(false);
applemenu->Append( wxApp::s_macAboutMenuItemId, "About..." );
applemenu->AppendSeparator();
applemenu->Append( wxApp::s_macPreferencesMenuItemId, "Preferences..." );
applemenu->AppendSeparator();
m_appleMenu = new wxMenu();
m_appleMenu->SetAllowRearrange(false);
m_appleMenu->Append( wxApp::s_macAboutMenuItemId, "About..." );
m_appleMenu->AppendSeparator();
#if !wxOSX_USE_CARBON
applemenu->Append( wxApp::s_macExitMenuItemId, "Quit\tCtrl+Q" );
m_appleMenu->Append( wxApp::s_macPreferencesMenuItemId, "Preferences..." );
m_appleMenu->AppendSeparator();
m_appleMenu->Append( wxApp::s_macExitMenuItemId, "Quit\tCtrl+Q" );
#endif
m_rootMenu->AppendSubMenu(applemenu, "\x14") ;
m_rootMenu->AppendSubMenu(m_appleMenu, "\x14") ;
}
wxMenuBar::wxMenuBar()
@@ -565,6 +564,7 @@ void wxMenuBar::MacInstallMenuBar()
return ;
m_rootMenu->GetPeer()->MakeRoot();
// DisableMenuCommand( NULL , kHICommandPreferences ) ;
#if 0
MenuBarHandle menubar = NULL ;
@@ -922,6 +922,8 @@ static void wxMenubarSetInvokingWindow( wxMenu *menu, wxWindow *win )
void wxMenuBar::UnsetInvokingWindow()
{
m_invokingWindow = NULL;
wxMenubarUnsetInvokingWindow(m_appleMenu);
wxMenu *menu;
wxMenuList::compatibility_iterator node = m_menus.GetFirst();
@@ -937,6 +939,8 @@ void wxMenuBar::UnsetInvokingWindow()
void wxMenuBar::SetInvokingWindow(wxFrame *frame)
{
m_invokingWindow = frame;
wxMenubarSetInvokingWindow(m_appleMenu, frame);
wxMenu *menu;
wxMenuList::compatibility_iterator node = m_menus.GetFirst();

View File

@@ -55,7 +55,8 @@ wxMenuItem::wxMenuItem(wxMenu *pParentMenu,
}
wxAcceleratorEntry *entry = wxAcceleratorEntry::Create( m_text ) ;
m_peer = wxMenuItemImpl::Create( this, pParentMenu, id, text, entry, strHelp, kind, pSubMenu );
// use accessors for ID and Kind because they might have been changed in the base constructor
m_peer = wxMenuItemImpl::Create( this, pParentMenu, GetId(), text, entry, strHelp, GetKind(), pSubMenu );
delete entry;
}