X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c9667cda38388d1f82f805d6d8cdcdca4a1ae877..320c341a1017798148ace98f7416c8a3cc902c04:/src/os2/menuitem.cpp diff --git a/src/os2/menuitem.cpp b/src/os2/menuitem.cpp index 6c912fc3e6..87bac21267 100644 --- a/src/os2/menuitem.cpp +++ b/src/os2/menuitem.cpp @@ -54,48 +54,6 @@ #define OWNER_DRAWN_ONLY( code ) #endif // wxUSE_OWNER_DRAWN/!wxUSE_OWNER_DRAWN -// ---------------------------------------------------------------------------- -// static function for translating menu labels -// ---------------------------------------------------------------------------- - -static wxString TextToLabel( - const wxString& rsTitle -) -{ - wxString sTitle; - const wxChar* zPc; - - if (rsTitle.IsEmpty()) - return(sTitle); - - for (zPc = rsTitle.c_str(); *zPc != wxT('\0'); zPc++) - { - if (*zPc == wxT('&')) - { - if (*(zPc + 1) == wxT('&')) - { - zPc++; - sTitle << wxT('&'); - } - else - sTitle << wxT('~'); - } - else - { - if ( *zPc == wxT('~')) - { - // - // Tildes must be doubled to prevent them from being - // interpreted as accelerator character prefix by PM ??? - // - sTitle << *zPc; - } - sTitle << *zPc; - } - } - return(sTitle); -} // end of TextToLabel - // ============================================================================ // implementation // ============================================================================ @@ -123,18 +81,20 @@ wxMenuItem::wxMenuItem( ) : wxMenuItemBase( pParentMenu ,nId - ,TextToLabel(rsText) + ,wxPMTextToLabel(rsText) ,rsHelp ,eKind ,pSubMenu ) #if wxUSE_OWNER_DRAWN -, wxOwnerDrawn( TextToLabel(rsText) +, wxOwnerDrawn( wxPMTextToLabel(rsText) ,eKind == wxITEM_CHECK ) #endif // owner drawn { wxASSERT_MSG(pParentMenu != NULL, wxT("a menu item should have a parent")); + memset(&m_vMenuData, '\0', sizeof(m_vMenuData)); + m_vMenuData.id = (USHORT)nId; Init(); } // end of wxMenuItem::wxMenuItem @@ -149,13 +109,13 @@ wxMenuItem::wxMenuItem( ) : wxMenuItemBase( pParentMenu ,nId - ,TextToLabel(rsText) + ,wxPMTextToLabel(rsText) ,rsHelp ,bIsCheckable ? wxITEM_CHECK : wxITEM_NORMAL ,pSubMenu ) #if wxUSE_OWNER_DRAWN -, wxOwnerDrawn( TextToLabel(rsText) +, wxOwnerDrawn( wxPMTextToLabel(rsText) ,bIsCheckable ) #endif // owner drawn @@ -415,12 +375,15 @@ void wxMenuItem::SetText( // Don't do anything if label didn't change // - wxString sText = TextToLabel(rText); + wxString sText = wxPMTextToLabel(rText); if (m_text == sText) return; wxMenuItemBase::SetText(sText); OWNER_DRAWN_ONLY(wxOwnerDrawn::SetName(sText)); +#if wxUSE_OWNER_DRAWN + SetAccelString(rText.AfterFirst(_T('\t'))); +#endif // wxUSE_OWNER_DRAWN HWND hMenu = GetHmenuOf(m_parentMenu);