adding standard menu items for cocoa, adding translation macro to menulabels, fixes #12732
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66300 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2117,6 +2117,13 @@ enum wxStandardID
|
|||||||
wxID_MDI_WINDOW_NEXT,
|
wxID_MDI_WINDOW_NEXT,
|
||||||
wxID_MDI_WINDOW_LAST = wxID_MDI_WINDOW_NEXT,
|
wxID_MDI_WINDOW_LAST = wxID_MDI_WINDOW_NEXT,
|
||||||
|
|
||||||
|
/* OS X system menu ids */
|
||||||
|
wxID_OSX_MENU_FIRST = 5250,
|
||||||
|
wxID_OSX_HIDE = wxID_OSX_MENU_FIRST,
|
||||||
|
wxID_OSX_HIDEOTHERS,
|
||||||
|
wxID_OSX_SHOWALL,
|
||||||
|
wxID_OSX_MENU_LAST = wxID_OSX_SHOWALL,
|
||||||
|
|
||||||
/* IDs used by generic file dialog (13 consecutive starting from this value) */
|
/* IDs used by generic file dialog (13 consecutive starting from this value) */
|
||||||
wxID_FILEDLGG = 5900,
|
wxID_FILEDLGG = 5900,
|
||||||
|
|
||||||
|
@@ -150,6 +150,8 @@ public :
|
|||||||
wxItemKind kind,
|
wxItemKind kind,
|
||||||
wxMenu *pSubMenu );
|
wxMenu *pSubMenu );
|
||||||
|
|
||||||
|
// handle OS specific menu items if they weren't handled during normal processing
|
||||||
|
virtual bool DoDefault() {} ;
|
||||||
protected :
|
protected :
|
||||||
wxMenuItem* m_peer;
|
wxMenuItem* m_peer;
|
||||||
|
|
||||||
|
@@ -35,7 +35,10 @@
|
|||||||
wxUnusedVar(sender);
|
wxUnusedVar(sender);
|
||||||
if ( impl )
|
if ( impl )
|
||||||
{
|
{
|
||||||
impl->GetWXPeer()->GetMenu()->HandleCommandProcess(impl->GetWXPeer());
|
wxMenuItem* menuitem = impl->GetWXPeer();
|
||||||
|
if ( menuitem->GetMenu()->HandleCommandProcess(menuitem) == false )
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -213,6 +216,8 @@ public :
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DoDefault();
|
||||||
|
|
||||||
void * GetHMenuItem() { return m_osxMenuItem; }
|
void * GetHMenuItem() { return m_osxMenuItem; }
|
||||||
|
|
||||||
protected :
|
protected :
|
||||||
@@ -226,6 +231,29 @@ wxMenuItemCocoaImpl::~wxMenuItemCocoaImpl()
|
|||||||
[m_osxMenuItem release];
|
[m_osxMenuItem release];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxMenuItemCocoaImpl::DoDefault()
|
||||||
|
{
|
||||||
|
bool handled=false;
|
||||||
|
int menuid = m_peer->GetId();
|
||||||
|
|
||||||
|
NSApplication *theNSApplication = [NSApplication sharedApplication];
|
||||||
|
if (menuid == wxID_OSX_HIDE)
|
||||||
|
{
|
||||||
|
[theNSApplication hide:nil];
|
||||||
|
handled=true;
|
||||||
|
}
|
||||||
|
else if (menuid == wxID_OSX_HIDEOTHERS)
|
||||||
|
{
|
||||||
|
[theNSApplication hideOtherApplications:nil];
|
||||||
|
handled=true;
|
||||||
|
}
|
||||||
|
else if (menuid == wxID_OSX_SHOWALL)
|
||||||
|
{
|
||||||
|
[theNSApplication unhideAllApplications:nil];
|
||||||
|
handled=true;
|
||||||
|
}
|
||||||
|
return handled;
|
||||||
|
}
|
||||||
|
|
||||||
wxMenuItemImpl* wxMenuItemImpl::Create( wxMenuItem* peer, wxMenu *pParentMenu,
|
wxMenuItemImpl* wxMenuItemImpl::Create( wxMenuItem* peer, wxMenu *pParentMenu,
|
||||||
int WXUNUSED(id),
|
int WXUNUSED(id),
|
||||||
|
@@ -440,6 +440,12 @@ bool wxMenu::HandleCommandProcess( wxMenuItem* item, wxWindow* senderWindow )
|
|||||||
processed = true ;
|
processed = true ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!processed && item)
|
||||||
|
{
|
||||||
|
processed = item->GetPeer()->DoDefault();
|
||||||
|
}
|
||||||
|
|
||||||
return processed;
|
return processed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -521,7 +527,7 @@ void wxMenuBar::Init()
|
|||||||
// recommended, sometimes these items really don't make sense.
|
// recommended, sometimes these items really don't make sense.
|
||||||
if ( wxApp::s_macAboutMenuItemId != wxID_NONE )
|
if ( wxApp::s_macAboutMenuItemId != wxID_NONE )
|
||||||
{
|
{
|
||||||
wxString aboutLabel("About");
|
wxString aboutLabel(_("About"));
|
||||||
if ( wxTheApp )
|
if ( wxTheApp )
|
||||||
aboutLabel << ' ' << wxTheApp->GetAppDisplayName();
|
aboutLabel << ' ' << wxTheApp->GetAppDisplayName();
|
||||||
else
|
else
|
||||||
@@ -534,12 +540,26 @@ void wxMenuBar::Init()
|
|||||||
if ( wxApp::s_macPreferencesMenuItemId != wxID_NONE )
|
if ( wxApp::s_macPreferencesMenuItemId != wxID_NONE )
|
||||||
{
|
{
|
||||||
m_appleMenu->Append( wxApp::s_macPreferencesMenuItemId,
|
m_appleMenu->Append( wxApp::s_macPreferencesMenuItemId,
|
||||||
"Preferences...\tCtrl+," );
|
_("Preferences...") + "\tCtrl+," );
|
||||||
m_appleMenu->AppendSeparator();
|
m_appleMenu->AppendSeparator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// standard menu items, handled in wxMenu::HandleCommandProcess(), see above:
|
||||||
|
wxString hideLabel(_("Hide"));
|
||||||
|
if ( wxTheApp )
|
||||||
|
hideLabel << ' ' << wxTheApp->GetAppDisplayName();
|
||||||
|
hideLabel << "\tCtrl+H";
|
||||||
|
m_appleMenu->Append( wxID_OSX_HIDE, hideLabel );
|
||||||
|
m_appleMenu->Append( wxID_OSX_HIDEOTHERS, _("Hide Others")+"\tAlt+Ctrl+H" );
|
||||||
|
m_appleMenu->Append( wxID_OSX_SHOWALL, _("Show All") );
|
||||||
|
m_appleMenu->AppendSeparator();
|
||||||
|
|
||||||
// Do always add "Quit" item unconditionally however, it can't be disabled.
|
// Do always add "Quit" item unconditionally however, it can't be disabled.
|
||||||
m_appleMenu->Append( wxApp::s_macExitMenuItemId, "Quit\tCtrl+Q" );
|
wxString quitLabel(_("Quit"));
|
||||||
|
if ( wxTheApp )
|
||||||
|
quitLabel << ' ' << wxTheApp->GetAppDisplayName();
|
||||||
|
quitLabel << "\tCtrl+Q";
|
||||||
|
m_appleMenu->Append( wxApp::s_macExitMenuItemId, quitLabel );
|
||||||
#endif // !wxOSX_USE_CARBON
|
#endif // !wxOSX_USE_CARBON
|
||||||
|
|
||||||
m_rootMenu->AppendSubMenu(m_appleMenu, "\x14") ;
|
m_rootMenu->AppendSubMenu(m_appleMenu, "\x14") ;
|
||||||
|
Reference in New Issue
Block a user