X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c01d5de838da68f602ede699050962072e412ab2..3c06bd88f48859dfd3f3948ffcfdcb0b9248ccd8:/src/xrc/xh_menu.cpp diff --git a/src/xrc/xh_menu.cpp b/src/xrc/xh_menu.cpp index 12d8b4a321..c278e30691 100644 --- a/src/xrc/xh_menu.cpp +++ b/src/xrc/xh_menu.cpp @@ -15,16 +15,15 @@ #pragma hdrstop #endif -#if wxUSE_XRC +#if wxUSE_XRC && wxUSE_MENUS #include "wx/xrc/xh_menu.h" #ifndef WX_PRECOMP #include "wx/frame.h" + #include "wx/menu.h" #endif -#include "wx/menu.h" - IMPLEMENT_DYNAMIC_CLASS(wxMenuXmlHandler, wxXmlResourceHandler) wxMenuXmlHandler::wxMenuXmlHandler() : @@ -89,7 +88,7 @@ wxObject *wxMenuXmlHandler::DoCreateResource() kind = wxITEM_RADIO; if (GetBool(wxT("checkable"))) { - wxASSERT_MSG( kind == wxITEM_NORMAL, _T("can't have both checkable and radion button at once") ); + wxASSERT_MSG( kind == wxITEM_NORMAL, _T("can't have both checkable and radio button at once") ); kind = wxITEM_CHECK; } @@ -98,7 +97,17 @@ wxObject *wxMenuXmlHandler::DoCreateResource() #if (!defined(__WXMSW__) && !defined(__WXPM__)) || wxUSE_OWNER_DRAWN if (HasParam(wxT("bitmap"))) - mitem->SetBitmap(GetBitmap(wxT("bitmap"), wxART_MENU)); + { + // currently only wxMSW has support for using different checked + // and unchecked bitmaps for menu items +#ifdef __WXMSW__ + if (HasParam(wxT("bitmap2"))) + mitem->SetBitmaps(GetBitmap(wxT("bitmap2"), wxART_MENU), + GetBitmap(wxT("bitmap"), wxART_MENU)); + else +#endif // __WXMSW__ + mitem->SetBitmap(GetBitmap(wxT("bitmap"), wxART_MENU)); + } #endif p_menu->Append(mitem); mitem->Enable(GetBool(wxT("enabled"), true)); @@ -150,4 +159,4 @@ bool wxMenuBarXmlHandler::CanHandle(wxXmlNode *node) return IsOfClass(node, wxT("wxMenuBar")); } -#endif // wxUSE_XRC +#endif // wxUSE_XRC && wxUSE_MENUS