X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f25881804583790351480098b50f4ce1b924e697..c3b0c2c3dc1e2a76af69082f63149174525d97d5:/src/xrc/xh_sizer.cpp diff --git a/src/xrc/xh_sizer.cpp b/src/xrc/xh_sizer.cpp index bd56618d03..f26bac9e7a 100644 --- a/src/xrc/xh_sizer.cpp +++ b/src/xrc/xh_sizer.cpp @@ -24,8 +24,11 @@ #include "wx/log.h" #include "wx/statbox.h" #include "wx/notebook.h" +#include "wx/panel.h" #include "wx/tokenzr.h" +IMPLEMENT_DYNAMIC_CLASS(wxSizerXmlHandler, wxXmlResourceHandler) + bool wxSizerXmlHandler::IsSizerNode(wxXmlNode *node) { return (IsOfClass(node, wxT("wxBoxSizer"))) || @@ -39,35 +42,37 @@ bool wxSizerXmlHandler::IsSizerNode(wxXmlNode *node) wxSizerXmlHandler::wxSizerXmlHandler() : wxXmlResourceHandler(), m_isInside(FALSE), m_parentSizer(NULL) { - ADD_STYLE(wxHORIZONTAL); - ADD_STYLE(wxVERTICAL); + XRC_ADD_STYLE(wxHORIZONTAL); + XRC_ADD_STYLE(wxVERTICAL); // and flags - ADD_STYLE(wxLEFT); - ADD_STYLE(wxRIGHT); - ADD_STYLE(wxTOP); - ADD_STYLE(wxBOTTOM); - ADD_STYLE(wxNORTH); - ADD_STYLE(wxSOUTH); - ADD_STYLE(wxEAST); - ADD_STYLE(wxWEST); - ADD_STYLE(wxALL); - - ADD_STYLE(wxGROW); - ADD_STYLE(wxEXPAND); - ADD_STYLE(wxSHAPED); - ADD_STYLE(wxSTRETCH_NOT); - - ADD_STYLE(wxALIGN_CENTER); - ADD_STYLE(wxALIGN_CENTRE); - ADD_STYLE(wxALIGN_LEFT); - ADD_STYLE(wxALIGN_TOP); - ADD_STYLE(wxALIGN_RIGHT); - ADD_STYLE(wxALIGN_BOTTOM); - ADD_STYLE(wxALIGN_CENTER_HORIZONTAL); - ADD_STYLE(wxALIGN_CENTRE_HORIZONTAL); - ADD_STYLE(wxALIGN_CENTER_VERTICAL); - ADD_STYLE(wxALIGN_CENTRE_VERTICAL); + XRC_ADD_STYLE(wxLEFT); + XRC_ADD_STYLE(wxRIGHT); + XRC_ADD_STYLE(wxTOP); + XRC_ADD_STYLE(wxBOTTOM); + XRC_ADD_STYLE(wxNORTH); + XRC_ADD_STYLE(wxSOUTH); + XRC_ADD_STYLE(wxEAST); + XRC_ADD_STYLE(wxWEST); + XRC_ADD_STYLE(wxALL); + + XRC_ADD_STYLE(wxGROW); + XRC_ADD_STYLE(wxEXPAND); + XRC_ADD_STYLE(wxSHAPED); + XRC_ADD_STYLE(wxSTRETCH_NOT); + + XRC_ADD_STYLE(wxALIGN_CENTER); + XRC_ADD_STYLE(wxALIGN_CENTRE); + XRC_ADD_STYLE(wxALIGN_LEFT); + XRC_ADD_STYLE(wxALIGN_TOP); + XRC_ADD_STYLE(wxALIGN_RIGHT); + XRC_ADD_STYLE(wxALIGN_BOTTOM); + XRC_ADD_STYLE(wxALIGN_CENTER_HORIZONTAL); + XRC_ADD_STYLE(wxALIGN_CENTRE_HORIZONTAL); + XRC_ADD_STYLE(wxALIGN_CENTER_VERTICAL); + XRC_ADD_STYLE(wxALIGN_CENTRE_VERTICAL); + + XRC_ADD_STYLE(wxADJUST_MINSIZE); } @@ -136,10 +141,12 @@ wxObject *wxSizerXmlHandler::DoCreateResource() wxXmlNode *parentNode = m_node->GetParent(); wxCHECK_MSG(m_parentSizer != NULL || - ((IsOfClass(parentNode, wxT("wxPanel")) || - IsOfClass(parentNode, wxT("wxDialog"))) && - parentNode->GetType() == wxXML_ELEMENT_NODE), NULL, - wxT("Incorrect use of sizer: parent is not 'wxDialog' or 'wxPanel'.")); + (parentNode->GetType() == wxXML_ELEMENT_NODE && + (m_parentAsWindow->IsKindOf(CLASSINFO(wxPanel)) || + m_parentAsWindow->IsKindOf(CLASSINFO(wxFrame)) || + m_parentAsWindow->IsKindOf(CLASSINFO(wxDialog))) + ), NULL, + wxT("Incorrect use of sizer: parent is not 'wxDialog', 'wxFrame' or 'wxPanel'.")); if (m_class == wxT("wxBoxSizer")) sizer = new wxBoxSizer(GetStyle(wxT("orient"), wxHORIZONTAL)); @@ -147,7 +154,12 @@ wxObject *wxSizerXmlHandler::DoCreateResource() else if (m_class == wxT("wxStaticBoxSizer")) { sizer = new wxStaticBoxSizer( - new wxStaticBox(m_parentAsWindow, -1, GetText(wxT("label"))), + new wxStaticBox(m_parentAsWindow, + GetID(), + GetText(wxT("label")), + wxDefaultPosition, wxDefaultSize, + 0/*style*/, + GetName()), GetStyle(wxT("orient"), wxHORIZONTAL)); }