X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d0f063020e6fb1b1a660952d0844071e0df24324..aecf930c5e84287e55ec4234afbe8c97ca41e261:/src/xrc/xh_toolb.cpp diff --git a/src/xrc/xh_toolb.cpp b/src/xrc/xh_toolb.cpp index b88c400d3f..bfe713d9ae 100644 --- a/src/xrc/xh_toolb.cpp +++ b/src/xrc/xh_toolb.cpp @@ -78,7 +78,7 @@ wxObject *wxToolBarXmlHandler::DoCreateResource() kind = wxITEM_CHECK; } - +#if wxUSE_MENUS // check whether we have dropdown tag inside wxMenu *menu = NULL; // menu for drop down items wxXmlNode * const nodeDropdown = GetParamNode("dropdown"); @@ -122,7 +122,7 @@ wxObject *wxToolBarXmlHandler::DoCreateResource() } } } - +#endif wxToolBarToolBase * const tool = m_toolbar->AddTool ( @@ -137,21 +137,27 @@ wxObject *wxToolBarXmlHandler::DoCreateResource() if ( GetBool(wxT("disabled")) ) m_toolbar->EnableTool(GetID(), false); - +#if wxUSE_MENUS if ( menu ) tool->SetDropdownMenu(menu); - +#endif + return m_toolbar; // must return non-NULL } - else if (m_class == wxT("separator")) + else if (m_class == wxT("separator") || m_class == wxT("space")) { if ( !m_toolbar ) { - ReportError("separator only allowed inside wxToolBar"); + ReportError("separators only allowed inside wxToolBar"); return NULL; } - m_toolbar->AddSeparator(); + + if ( m_class == wxT("separator") ) + m_toolbar->AddSeparator(); + else + m_toolbar->AddStretchableSpace(); + return m_toolbar; // must return non-NULL } @@ -205,6 +211,7 @@ wxObject *wxToolBarXmlHandler::DoCreateResource() wxControl *control = wxDynamicCast(created, wxControl); if (!IsOfClass(n, wxT("tool")) && !IsOfClass(n, wxT("separator")) && + !IsOfClass(n, wxT("space")) && control != NULL) toolbar->AddControl(control); } @@ -231,6 +238,7 @@ bool wxToolBarXmlHandler::CanHandle(wxXmlNode *node) { return ((!m_isInside && IsOfClass(node, wxT("wxToolBar"))) || (m_isInside && IsOfClass(node, wxT("tool"))) || + (m_isInside && IsOfClass(node, wxT("space"))) || (m_isInside && IsOfClass(node, wxT("separator")))); }