X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1c83cdc9205a794ff86be710bd8ab65951990a67..acc0ebd7a871124d4d6b36069340227e6c584f38:/src/msw/menuitem.cpp?ds=sidebyside diff --git a/src/msw/menuitem.cpp b/src/msw/menuitem.cpp index 2039b073f0..c87a217ce6 100644 --- a/src/msw/menuitem.cpp +++ b/src/msw/menuitem.cpp @@ -28,6 +28,8 @@ #pragma hdrstop #endif +#if wxUSE_MENUS + #ifndef WX_PRECOMP #include "wx/font.h" #include "wx/bitmap.h" @@ -70,11 +72,11 @@ // dynamic classes implementation // ---------------------------------------------------------------------------- - #if wxUSE_OWNER_DRAWN - IMPLEMENT_DYNAMIC_CLASS2(wxMenuItem, wxMenuItemBase, wxOwnerDrawn) - #else //!USE_OWNER_DRAWN - IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxMenuItemBase) - #endif //USE_OWNER_DRAWN +#if wxUSE_OWNER_DRAWN + IMPLEMENT_DYNAMIC_CLASS2(wxMenuItem, wxMenuItemBase, wxOwnerDrawn) +#else //!USE_OWNER_DRAWN + IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxMenuItemBase) +#endif //USE_OWNER_DRAWN // ---------------------------------------------------------------------------- // wxMenuItem @@ -88,9 +90,9 @@ wxMenuItem::wxMenuItem(wxMenu *pParentMenu, const wxString& text, const wxString& strHelp, bool bCheckable, - wxMenu *pSubMenu) : + wxMenu *pSubMenu) #if wxUSE_OWNER_DRAWN - wxOwnerDrawn(text, bCheckable) + : wxOwnerDrawn(GetLabelFromText(text), bCheckable) #endif // owner drawn { wxASSERT_MSG( pParentMenu != NULL, wxT("a menu item should have a parent") ); @@ -102,10 +104,13 @@ wxMenuItem::wxMenuItem(wxMenu *pParentMenu, SetTextColour(SYS_COLOR(MENUTEXT)); SetBackgroundColour(SYS_COLOR(MENU)); + #undef SYS_COLOR + // we don't want normal items be owner-drawn ResetOwnerDrawn(); - #undef SYS_COLOR + // tell the owner drawing code to to show the accel string as well + SetAccelString(text.AfterFirst(_T('\t'))); #endif // wxUSE_OWNER_DRAWN m_parentMenu = pParentMenu; @@ -141,23 +146,12 @@ bool wxMenuItem::IsChecked() const return (flag & MF_CHECKED) != 0; } -wxString wxMenuItem::GetLabel() const -{ - return wxStripMenuCodes(m_text); -} - -// accelerators -// ------------ - -#if wxUSE_ACCEL - -wxAcceleratorEntry *wxMenuItem::GetAccel() const +/* static */ +wxString wxMenuItemBase::GetLabelFromText(const wxString& text) { - return wxGetAccelFromString(GetText()); + return wxStripMenuCodes(text); } -#endif // wxUSE_ACCEL - // change item state // ----------------- @@ -172,7 +166,7 @@ void wxMenuItem::Enable(bool enable) (enable ? MF_ENABLED : MF_GRAYED)); if ( rc == -1 ) { - wxLogLastError("EnableMenuItem"); + wxLogLastError(wxT("EnableMenuItem")); } wxMenuItemBase::Enable(enable); @@ -191,7 +185,7 @@ void wxMenuItem::Check(bool check) (check ? MF_CHECKED : MF_UNCHECKED)); if ( rc == -1 ) { - wxLogLastError("CheckMenuItem"); + wxLogLastError(wxT("CheckMenuItem")); } wxMenuItemBase::Check(check); @@ -217,7 +211,7 @@ void wxMenuItem::SetText(const wxString& text) UINT flagsOld = ::GetMenuState(hMenu, id, MF_BYCOMMAND); if ( flagsOld == 0xFFFFFFFF ) { - wxLogLastError("GetMenuState"); + wxLogLastError(wxT("GetMenuState")); } else { @@ -240,7 +234,7 @@ void wxMenuItem::SetText(const wxString& text) #endif //owner drawn { flagsOld |= MF_STRING; - data = (char*) text.c_str(); + data = (wxChar*) text.c_str(); } if ( ::ModifyMenu(hMenu, id, @@ -271,3 +265,5 @@ wxMenuItem *wxMenuItemBase::New(wxMenu *parentMenu, { return new wxMenuItem(parentMenu, id, name, help, isCheckable, subMenu); } + +#endif // wxUSE_MENUS