#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
// ============================================================================
)
: 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
)
: 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
// 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);