removed __DARWIN__ conditional tests (the help menu doesn't work otherwise)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -408,112 +408,110 @@ void wxMenu::MacEnableMenu( bool bDoEnable )
|
|||||||
|
|
||||||
bool wxMenu::MacMenuSelect( wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum )
|
bool wxMenu::MacMenuSelect( wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum )
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
wxNode *node;
|
wxNode *node;
|
||||||
|
|
||||||
if ( m_macMenuId == macMenuId )
|
|
||||||
{
|
|
||||||
node = GetMenuItems().Nth(macMenuItemNum-1);
|
|
||||||
if (node)
|
|
||||||
{
|
|
||||||
wxMenuItem *pItem = (wxMenuItem*)node->Data();
|
|
||||||
|
|
||||||
if (pItem->IsCheckable())
|
|
||||||
pItem->Check(! pItem->IsChecked());
|
|
||||||
|
|
||||||
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
|
|
||||||
event.m_timeStamp = when;
|
|
||||||
event.SetEventObject(handler);
|
|
||||||
event.SetInt( pItem->GetId() );
|
|
||||||
{
|
|
||||||
bool processed = false ;
|
|
||||||
|
|
||||||
|
if ( m_macMenuId == macMenuId )
|
||||||
|
{
|
||||||
|
node = GetMenuItems().Nth(macMenuItemNum-1);
|
||||||
|
if (node)
|
||||||
|
{
|
||||||
|
wxMenuItem *pItem = (wxMenuItem*)node->Data();
|
||||||
|
|
||||||
|
if (pItem->IsCheckable())
|
||||||
|
pItem->Check(! pItem->IsChecked());
|
||||||
|
|
||||||
|
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
|
||||||
|
event.m_timeStamp = when;
|
||||||
|
event.SetEventObject(handler);
|
||||||
|
event.SetInt( pItem->GetId() );
|
||||||
|
{
|
||||||
|
bool processed = false ;
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY
|
#if WXWIN_COMPATIBILITY
|
||||||
// Try a callback
|
// Try a callback
|
||||||
if (m_callback)
|
if (m_callback)
|
||||||
{
|
{
|
||||||
(void) (*(m_callback)) (*this, event);
|
(void) (*(m_callback)) (*this, event);
|
||||||
processed = TRUE;
|
processed = TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// Try the menu's event handler
|
// Try the menu's event handler
|
||||||
if ( !processed && handler)
|
if ( !processed && handler)
|
||||||
{
|
{
|
||||||
processed = handler->ProcessEvent(event);
|
processed = handler->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try the window the menu was popped up from (and up
|
// Try the window the menu was popped up from (and up
|
||||||
// through the hierarchy)
|
// through the hierarchy)
|
||||||
if ( !processed && GetInvokingWindow())
|
if ( !processed && GetInvokingWindow())
|
||||||
processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
|
processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef __DARWIN__
|
else if ( macMenuId == kHMHelpMenuID )
|
||||||
else if ( macMenuId == kHMHelpMenuID )
|
{
|
||||||
{
|
int menuItem = firstUserHelpMenuItem-1 ;
|
||||||
int menuItem = firstUserHelpMenuItem-1 ;
|
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
|
||||||
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
|
{
|
||||||
{
|
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
|
||||||
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
|
|
||||||
|
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
||||||
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
if ( pSubMenu != NULL )
|
||||||
if ( pSubMenu != NULL )
|
{
|
||||||
{
|
}
|
||||||
}
|
else
|
||||||
else
|
{
|
||||||
{
|
if ( pItem->GetId() != wxApp::s_macAboutMenuItemId )
|
||||||
if ( pItem->GetId() != wxApp::s_macAboutMenuItemId )
|
++menuItem ;
|
||||||
++menuItem ;
|
|
||||||
|
if ( menuItem == macMenuItemNum )
|
||||||
if ( menuItem == macMenuItemNum )
|
{
|
||||||
{
|
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
|
||||||
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
|
event.m_timeStamp = when;
|
||||||
event.m_timeStamp = when;
|
event.SetEventObject(handler);
|
||||||
event.SetEventObject(handler);
|
event.SetInt( pItem->GetId() );
|
||||||
event.SetInt( pItem->GetId() );
|
{
|
||||||
{
|
bool processed = false ;
|
||||||
bool processed = false ;
|
|
||||||
#if WXWIN_COMPATIBILITY
|
#if WXWIN_COMPATIBILITY
|
||||||
// Try a callback
|
// Try a callback
|
||||||
if (m_callback)
|
if (m_callback)
|
||||||
{
|
{
|
||||||
(void) (*(m_callback)) (*this, event);
|
(void) (*(m_callback)) (*this, event);
|
||||||
processed = TRUE;
|
processed = TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// Try the menu's event handler
|
// Try the menu's event handler
|
||||||
if ( !processed && handler)
|
if ( !processed && handler)
|
||||||
{
|
{
|
||||||
processed = handler->ProcessEvent(event);
|
processed = handler->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try the window the menu was popped up from (and up
|
// Try the window the menu was popped up from (and up
|
||||||
// through the hierarchy)
|
// through the hierarchy)
|
||||||
if ( !processed && GetInvokingWindow())
|
if ( !processed && GetInvokingWindow())
|
||||||
processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
|
processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // __DARWIN__
|
|
||||||
|
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
|
||||||
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
|
{
|
||||||
{
|
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
|
||||||
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
|
|
||||||
|
|
||||||
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
||||||
if ( pSubMenu != NULL )
|
if ( pSubMenu != NULL )
|
||||||
{
|
{
|
||||||
if ( pSubMenu->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
|
if ( pSubMenu->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false ;
|
return false ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Menu Bar
|
// Menu Bar
|
||||||
@@ -878,36 +876,31 @@ bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
|
|||||||
|
|
||||||
void wxMenuBar::MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum)
|
void wxMenuBar::MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum)
|
||||||
{
|
{
|
||||||
// first scan fast for direct commands, i.e. menus which have these commands directly in their own list
|
// first scan fast for direct commands, i.e. menus which have these commands directly in their own list
|
||||||
|
|
||||||
if ( macMenuId == kwxMacAppleMenuId && macMenuItemNum == 1 )
|
if ( macMenuId == kwxMacAppleMenuId && macMenuItemNum == 1 )
|
||||||
{
|
{
|
||||||
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, wxApp::s_macAboutMenuItemId );
|
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, wxApp::s_macAboutMenuItemId );
|
||||||
event.m_timeStamp = when;
|
event.m_timeStamp = when;
|
||||||
event.SetEventObject(handler);
|
event.SetEventObject(handler);
|
||||||
event.SetInt( wxApp::s_macAboutMenuItemId );
|
event.SetInt( wxApp::s_macAboutMenuItemId );
|
||||||
handler->ProcessEvent(event);
|
handler->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_menus.GetCount() ; i++)
|
for (int i = 0; i < m_menus.GetCount() ; i++)
|
||||||
{
|
{
|
||||||
if ( m_menus[i]->MacGetMenuId() == macMenuId
|
if ( m_menus[i]->MacGetMenuId() == macMenuId || ( macMenuId == kHMHelpMenuID && ( m_titles[i] == "?" || m_titles[i] == "&?" || m_titles[i] == wxApp::s_macHelpMenuTitleName ) ) )
|
||||||
#ifndef __DARWIN__
|
{
|
||||||
||
|
if ( m_menus[i]->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
|
||||||
( macMenuId == kHMHelpMenuID && ( m_titles[i] == "?" || m_titles[i] == "&?" || m_titles[i] == wxApp::s_macHelpMenuTitleName ) )
|
return ;
|
||||||
#endif
|
else
|
||||||
)
|
{
|
||||||
{
|
//TODO flag this as an error since it must contain the item
|
||||||
if ( m_menus[i]->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
|
return ;
|
||||||
return ;
|
}
|
||||||
else
|
}
|
||||||
{
|
}
|
||||||
//TODO flag this as an error since it must contain the item
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < m_menus.GetCount(); i++)
|
for (int i = 0; i < m_menus.GetCount(); i++)
|
||||||
{
|
{
|
||||||
|
253
src/mac/menu.cpp
253
src/mac/menu.cpp
@@ -408,112 +408,110 @@ void wxMenu::MacEnableMenu( bool bDoEnable )
|
|||||||
|
|
||||||
bool wxMenu::MacMenuSelect( wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum )
|
bool wxMenu::MacMenuSelect( wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum )
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
wxNode *node;
|
wxNode *node;
|
||||||
|
|
||||||
if ( m_macMenuId == macMenuId )
|
|
||||||
{
|
|
||||||
node = GetMenuItems().Nth(macMenuItemNum-1);
|
|
||||||
if (node)
|
|
||||||
{
|
|
||||||
wxMenuItem *pItem = (wxMenuItem*)node->Data();
|
|
||||||
|
|
||||||
if (pItem->IsCheckable())
|
|
||||||
pItem->Check(! pItem->IsChecked());
|
|
||||||
|
|
||||||
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
|
|
||||||
event.m_timeStamp = when;
|
|
||||||
event.SetEventObject(handler);
|
|
||||||
event.SetInt( pItem->GetId() );
|
|
||||||
{
|
|
||||||
bool processed = false ;
|
|
||||||
|
|
||||||
|
if ( m_macMenuId == macMenuId )
|
||||||
|
{
|
||||||
|
node = GetMenuItems().Nth(macMenuItemNum-1);
|
||||||
|
if (node)
|
||||||
|
{
|
||||||
|
wxMenuItem *pItem = (wxMenuItem*)node->Data();
|
||||||
|
|
||||||
|
if (pItem->IsCheckable())
|
||||||
|
pItem->Check(! pItem->IsChecked());
|
||||||
|
|
||||||
|
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
|
||||||
|
event.m_timeStamp = when;
|
||||||
|
event.SetEventObject(handler);
|
||||||
|
event.SetInt( pItem->GetId() );
|
||||||
|
{
|
||||||
|
bool processed = false ;
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY
|
#if WXWIN_COMPATIBILITY
|
||||||
// Try a callback
|
// Try a callback
|
||||||
if (m_callback)
|
if (m_callback)
|
||||||
{
|
{
|
||||||
(void) (*(m_callback)) (*this, event);
|
(void) (*(m_callback)) (*this, event);
|
||||||
processed = TRUE;
|
processed = TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// Try the menu's event handler
|
// Try the menu's event handler
|
||||||
if ( !processed && handler)
|
if ( !processed && handler)
|
||||||
{
|
{
|
||||||
processed = handler->ProcessEvent(event);
|
processed = handler->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try the window the menu was popped up from (and up
|
// Try the window the menu was popped up from (and up
|
||||||
// through the hierarchy)
|
// through the hierarchy)
|
||||||
if ( !processed && GetInvokingWindow())
|
if ( !processed && GetInvokingWindow())
|
||||||
processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
|
processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef __DARWIN__
|
else if ( macMenuId == kHMHelpMenuID )
|
||||||
else if ( macMenuId == kHMHelpMenuID )
|
{
|
||||||
{
|
int menuItem = firstUserHelpMenuItem-1 ;
|
||||||
int menuItem = firstUserHelpMenuItem-1 ;
|
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
|
||||||
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
|
{
|
||||||
{
|
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
|
||||||
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
|
|
||||||
|
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
||||||
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
if ( pSubMenu != NULL )
|
||||||
if ( pSubMenu != NULL )
|
{
|
||||||
{
|
}
|
||||||
}
|
else
|
||||||
else
|
{
|
||||||
{
|
if ( pItem->GetId() != wxApp::s_macAboutMenuItemId )
|
||||||
if ( pItem->GetId() != wxApp::s_macAboutMenuItemId )
|
++menuItem ;
|
||||||
++menuItem ;
|
|
||||||
|
if ( menuItem == macMenuItemNum )
|
||||||
if ( menuItem == macMenuItemNum )
|
{
|
||||||
{
|
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
|
||||||
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
|
event.m_timeStamp = when;
|
||||||
event.m_timeStamp = when;
|
event.SetEventObject(handler);
|
||||||
event.SetEventObject(handler);
|
event.SetInt( pItem->GetId() );
|
||||||
event.SetInt( pItem->GetId() );
|
{
|
||||||
{
|
bool processed = false ;
|
||||||
bool processed = false ;
|
|
||||||
#if WXWIN_COMPATIBILITY
|
#if WXWIN_COMPATIBILITY
|
||||||
// Try a callback
|
// Try a callback
|
||||||
if (m_callback)
|
if (m_callback)
|
||||||
{
|
{
|
||||||
(void) (*(m_callback)) (*this, event);
|
(void) (*(m_callback)) (*this, event);
|
||||||
processed = TRUE;
|
processed = TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// Try the menu's event handler
|
// Try the menu's event handler
|
||||||
if ( !processed && handler)
|
if ( !processed && handler)
|
||||||
{
|
{
|
||||||
processed = handler->ProcessEvent(event);
|
processed = handler->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try the window the menu was popped up from (and up
|
// Try the window the menu was popped up from (and up
|
||||||
// through the hierarchy)
|
// through the hierarchy)
|
||||||
if ( !processed && GetInvokingWindow())
|
if ( !processed && GetInvokingWindow())
|
||||||
processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
|
processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // __DARWIN__
|
|
||||||
|
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
|
||||||
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
|
{
|
||||||
{
|
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
|
||||||
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
|
|
||||||
|
|
||||||
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
||||||
if ( pSubMenu != NULL )
|
if ( pSubMenu != NULL )
|
||||||
{
|
{
|
||||||
if ( pSubMenu->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
|
if ( pSubMenu->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
|
||||||
return true ;
|
return true ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false ;
|
return false ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Menu Bar
|
// Menu Bar
|
||||||
@@ -878,36 +876,31 @@ bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
|
|||||||
|
|
||||||
void wxMenuBar::MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum)
|
void wxMenuBar::MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum)
|
||||||
{
|
{
|
||||||
// first scan fast for direct commands, i.e. menus which have these commands directly in their own list
|
// first scan fast for direct commands, i.e. menus which have these commands directly in their own list
|
||||||
|
|
||||||
if ( macMenuId == kwxMacAppleMenuId && macMenuItemNum == 1 )
|
if ( macMenuId == kwxMacAppleMenuId && macMenuItemNum == 1 )
|
||||||
{
|
{
|
||||||
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, wxApp::s_macAboutMenuItemId );
|
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, wxApp::s_macAboutMenuItemId );
|
||||||
event.m_timeStamp = when;
|
event.m_timeStamp = when;
|
||||||
event.SetEventObject(handler);
|
event.SetEventObject(handler);
|
||||||
event.SetInt( wxApp::s_macAboutMenuItemId );
|
event.SetInt( wxApp::s_macAboutMenuItemId );
|
||||||
handler->ProcessEvent(event);
|
handler->ProcessEvent(event);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_menus.GetCount() ; i++)
|
for (int i = 0; i < m_menus.GetCount() ; i++)
|
||||||
{
|
{
|
||||||
if ( m_menus[i]->MacGetMenuId() == macMenuId
|
if ( m_menus[i]->MacGetMenuId() == macMenuId || ( macMenuId == kHMHelpMenuID && ( m_titles[i] == "?" || m_titles[i] == "&?" || m_titles[i] == wxApp::s_macHelpMenuTitleName ) ) )
|
||||||
#ifndef __DARWIN__
|
{
|
||||||
||
|
if ( m_menus[i]->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
|
||||||
( macMenuId == kHMHelpMenuID && ( m_titles[i] == "?" || m_titles[i] == "&?" || m_titles[i] == wxApp::s_macHelpMenuTitleName ) )
|
return ;
|
||||||
#endif
|
else
|
||||||
)
|
{
|
||||||
{
|
//TODO flag this as an error since it must contain the item
|
||||||
if ( m_menus[i]->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
|
return ;
|
||||||
return ;
|
}
|
||||||
else
|
}
|
||||||
{
|
}
|
||||||
//TODO flag this as an error since it must contain the item
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < m_menus.GetCount(); i++)
|
for (int i = 0; i < m_menus.GetCount(); i++)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user