X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5b208a1796ecf1b9ab267d200705b4f3b4d10e3..fdc255cfe0f2689f567a97a254967a47a0ac4482:/src/osx/menuitem_osx.cpp?ds=sidebyside

diff --git a/src/osx/menuitem_osx.cpp b/src/osx/menuitem_osx.cpp
index 7564d74889..93ef505286 100644
--- a/src/osx/menuitem_osx.cpp
+++ b/src/osx/menuitem_osx.cpp
@@ -29,8 +29,6 @@ wxMenuItemImpl::~wxMenuItemImpl()
 {
 }
 
-IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject)
-
 wxMenuItem::wxMenuItem(wxMenu *pParentMenu,
                        int id,
                        const wxString& t,
@@ -43,13 +41,14 @@ wxMenuItem::wxMenuItem(wxMenu *pParentMenu,
 
     // In other languages there is no difference in naming the Exit/Quit menu item between MacOS and Windows guidelines
     // therefore these item must not be translated
-    if ( wxStripMenuCodes(m_text).Upper() == wxT("EXIT") )
-        m_text = wxT("Quit\tCtrl+Q") ;
+    if (pParentMenu != NULL && !pParentMenu->GetNoEventsMode())
+        if ( wxStripMenuCodes(m_text).Upper() == wxT("EXIT") )
+            m_text = wxT("Quit\tCtrl+Q") ;
 
     m_radioGroup.start = -1;
     m_isRadioGroupStart = false;
 
-    wxString text = wxStripMenuCodes(m_text);
+    wxString text = wxStripMenuCodes(m_text, (pParentMenu != NULL && pParentMenu->GetNoEventsMode()) ? wxStrip_Accel : wxStrip_All);
     if (text.IsEmpty() && !IsSeparator())
     {
         wxASSERT_MSG(wxIsStockID(GetId()), wxT("A non-stock menu item with an empty label?"));
@@ -177,9 +176,9 @@ void wxMenuItem::UpdateItemBitmap()
     if ( !m_parentMenu )
         return;
 
-    if ( m_bitmap.Ok() )
+    if ( m_bitmap.IsOk() )
     {
-        m_peer->SetBitmap( m_bitmap );
+        GetPeer()->SetBitmap( m_bitmap );
     }
 }
 
@@ -192,11 +191,11 @@ void wxMenuItem::UpdateItemStatus()
         return ;
 
     if ( IsCheckable() && IsChecked() )
-        m_peer->Check( true );
+        GetPeer()->Check( true );
     else
-        m_peer->Check( false );
+        GetPeer()->Check( false );
 
-    m_peer->Enable( IsEnabled() );
+    GetPeer()->Enable( IsEnabled() );
 }
 
 void wxMenuItem::UpdateItemText()
@@ -204,7 +203,7 @@ void wxMenuItem::UpdateItemText()
     if ( !m_parentMenu )
         return ;
 
-    wxString text = wxStripMenuCodes(m_text);
+    wxString text = wxStripMenuCodes(m_text, m_parentMenu != NULL && m_parentMenu->GetNoEventsMode() ? wxStrip_Accel : wxStrip_All);
     if (text.IsEmpty() && !IsSeparator())
     {
         wxASSERT_MSG(wxIsStockID(GetId()), wxT("A non-stock menu item with an empty label?"));
@@ -212,7 +211,7 @@ void wxMenuItem::UpdateItemText()
     }
 
     wxAcceleratorEntry *entry = wxAcceleratorEntry::Create( m_text ) ;
-    m_peer->SetLabel( text, entry );
+    GetPeer()->SetLabel( text, entry );
     delete entry ;
 }