From 65812490f7886a61b6929058bdf99e3b4c46b2ca Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sun, 24 Mar 2002 00:23:50 +0000 Subject: [PATCH] added radio menu items ot XRC git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- contrib/src/xrc/xh_menu.cpp | 17 +++++++++++++---- src/xrc/xh_menu.cpp | 17 +++++++++++++---- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/contrib/src/xrc/xh_menu.cpp b/contrib/src/xrc/xh_menu.cpp index bfa9ed1644..4ff9112e1d 100644 --- a/contrib/src/xrc/xh_menu.cpp +++ b/contrib/src/xrc/xh_menu.cpp @@ -65,17 +65,25 @@ wxObject *wxMenuXmlHandler::DoCreateResource() else if (m_class == wxT("break")) p_menu->Break(); else /*wxMenuItem*/ - { + { int id = GetID(); - bool checkable = GetBool(wxT("checkable")); wxString label = GetText(wxT("label")); wxString accel = GetText(wxT("accel"), FALSE); wxString fullLabel = label; if (!accel.IsEmpty()) fullLabel << wxT("\t") << accel; + wxItemKind kind = wxITEM_NORMAL; + if (GetBool(wxT("radio"))) + kind = wxITEM_RADIO; + if (GetBool(wxT("checkable"))) + { + wxASSERT_MSG( kind == wxITEM_NORMAL, _T("can't have both checkable and radion button at once") ); + kind = wxITEM_CHECK; + } + wxMenuItem *mitem = new wxMenuItem(p_menu, id, fullLabel, - GetText(wxT("help")), checkable); + GetText(wxT("help")), kind); #if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__) if (HasParam(wxT("bitmap"))) @@ -83,7 +91,8 @@ wxObject *wxMenuXmlHandler::DoCreateResource() #endif p_menu->Append(mitem); mitem->Enable(GetBool(wxT("enabled"), TRUE)); - if (checkable) mitem->Check(GetBool(wxT("checked"))); + if (kind == wxITEM_CHECK) + mitem->Check(GetBool(wxT("checked"))); } return NULL; } diff --git a/src/xrc/xh_menu.cpp b/src/xrc/xh_menu.cpp index bfa9ed1644..4ff9112e1d 100644 --- a/src/xrc/xh_menu.cpp +++ b/src/xrc/xh_menu.cpp @@ -65,17 +65,25 @@ wxObject *wxMenuXmlHandler::DoCreateResource() else if (m_class == wxT("break")) p_menu->Break(); else /*wxMenuItem*/ - { + { int id = GetID(); - bool checkable = GetBool(wxT("checkable")); wxString label = GetText(wxT("label")); wxString accel = GetText(wxT("accel"), FALSE); wxString fullLabel = label; if (!accel.IsEmpty()) fullLabel << wxT("\t") << accel; + wxItemKind kind = wxITEM_NORMAL; + if (GetBool(wxT("radio"))) + kind = wxITEM_RADIO; + if (GetBool(wxT("checkable"))) + { + wxASSERT_MSG( kind == wxITEM_NORMAL, _T("can't have both checkable and radion button at once") ); + kind = wxITEM_CHECK; + } + wxMenuItem *mitem = new wxMenuItem(p_menu, id, fullLabel, - GetText(wxT("help")), checkable); + GetText(wxT("help")), kind); #if wxCHECK_VERSION(2,3,0) || defined(__WXMSW__) if (HasParam(wxT("bitmap"))) @@ -83,7 +91,8 @@ wxObject *wxMenuXmlHandler::DoCreateResource() #endif p_menu->Append(mitem); mitem->Enable(GetBool(wxT("enabled"), TRUE)); - if (checkable) mitem->Check(GetBool(wxT("checked"))); + if (kind == wxITEM_CHECK) + mitem->Check(GetBool(wxT("checked"))); } return NULL; } -- 2.45.2