X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/65812490f7886a61b6929058bdf99e3b4c46b2ca..6636ac1ea9f6f716dc51ca17c72516ebb08eb972:/src/xrc/xh_menu.cpp diff --git a/src/xrc/xh_menu.cpp b/src/xrc/xh_menu.cpp index 4ff9112e1d..c23acf06aa 100644 --- a/src/xrc/xh_menu.cpp +++ b/src/xrc/xh_menu.cpp @@ -7,7 +7,7 @@ // Copyright: (c) 2000 Vaclav Slavik // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - + #ifdef __GNUG__ #pragma implementation "xh_menu.h" #endif @@ -19,13 +19,16 @@ #pragma hdrstop #endif +#if wxUSE_XRC + #include "wx/xrc/xh_menu.h" #include "wx/menu.h" #include "wx/frame.h" +IMPLEMENT_DYNAMIC_CLASS(wxMenuXmlHandler, wxXmlResourceHandler) -wxMenuXmlHandler::wxMenuXmlHandler() : - wxXmlResourceHandler(), m_insideMenu(FALSE) +wxMenuXmlHandler::wxMenuXmlHandler() : + wxXmlResourceHandler(), m_insideMenu(false) { XRC_ADD_STYLE(wxMENU_TEAROFF); } @@ -37,10 +40,10 @@ wxObject *wxMenuXmlHandler::DoCreateResource() wxMenu *menu = new wxMenu(GetStyle()); wxString title = GetText(wxT("label")); wxString help = GetText(wxT("help")); - + bool oldins = m_insideMenu; - m_insideMenu = TRUE; - CreateChildren(menu, TRUE/*only this handler*/); + m_insideMenu = true; + CreateChildren(menu, true/*only this handler*/); m_insideMenu = oldins; wxMenuBar *p_bar = wxDynamicCast(m_parent, wxMenuBar); @@ -59,16 +62,16 @@ wxObject *wxMenuXmlHandler::DoCreateResource() else { wxMenu *p_menu = wxDynamicCast(m_parent, wxMenu); - + if (m_class == wxT("separator")) p_menu->AppendSeparator(); else if (m_class == wxT("break")) p_menu->Break(); else /*wxMenuItem*/ - { + { int id = GetID(); wxString label = GetText(wxT("label")); - wxString accel = GetText(wxT("accel"), FALSE); + wxString accel = GetText(wxT("accel"), false); wxString fullLabel = label; if (!accel.IsEmpty()) fullLabel << wxT("\t") << accel; @@ -84,13 +87,13 @@ wxObject *wxMenuXmlHandler::DoCreateResource() wxMenuItem *mitem = new wxMenuItem(p_menu, id, fullLabel, GetText(wxT("help")), kind); - -#if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__) - if (HasParam(wxT("bitmap"))) - mitem->SetBitmap(GetBitmap(wxT("bitmap"))); + +#if wxUSE_OWNER_DRAWN + if (HasParam(wxT("bitmap"))) + mitem->SetBitmap(GetBitmap(wxT("bitmap"), wxART_MENU)); #endif p_menu->Append(mitem); - mitem->Enable(GetBool(wxT("enabled"), TRUE)); + mitem->Enable(GetBool(wxT("enabled"), true)); if (kind == wxITEM_CHECK) mitem->Check(GetBool(wxT("checked"))); } @@ -103,13 +106,15 @@ wxObject *wxMenuXmlHandler::DoCreateResource() bool wxMenuXmlHandler::CanHandle(wxXmlNode *node) { return IsOfClass(node, wxT("wxMenu")) || - (m_insideMenu && + (m_insideMenu && (IsOfClass(node, wxT("wxMenuItem")) || IsOfClass(node, wxT("break")) || IsOfClass(node, wxT("separator"))) ); } +IMPLEMENT_DYNAMIC_CLASS(wxMenuBarXmlHandler, wxXmlResourceHandler) + wxMenuBarXmlHandler::wxMenuBarXmlHandler() : wxXmlResourceHandler() { XRC_ADD_STYLE(wxMB_DOCKABLE); @@ -136,3 +141,5 @@ bool wxMenuBarXmlHandler::CanHandle(wxXmlNode *node) { return IsOfClass(node, wxT("wxMenuBar")); } + +#endif // wxUSE_XRC