From: Václav Slavík Date: Thu, 27 Jul 2000 18:51:07 +0000 (+0000) Subject: notebooksizer is now property of notebook, not special kind of sizer X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/0bed1ceef84a76bc0096883d3fca308b40200b15?ds=sidebyside notebooksizer is now property of notebook, not special kind of sizer git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/contrib/src/xml/xh_notbk.cpp b/contrib/src/xml/xh_notbk.cpp index 30b4b6322a..deaf745f1a 100644 --- a/contrib/src/xml/xh_notbk.cpp +++ b/contrib/src/xml/xh_notbk.cpp @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: xh_notbk.cpp -// Purpose: XML resource for wxBoxSizer +// Purpose: XML resource for wxNotebook // Author: Vaclav Slavik // Created: 2000/03/21 // RCS-ID: $Id$ @@ -25,6 +25,7 @@ #include "wx/log.h" #include "wx/notebook.h" +#include "wx/sizer.h" wxNotebookXmlHandler::wxNotebookXmlHandler() : wxXmlResourceHandler(), m_IsInside(FALSE), m_Notebook(NULL) @@ -39,13 +40,13 @@ wxNotebookXmlHandler::wxNotebookXmlHandler() wxObject *wxNotebookXmlHandler::DoCreateResource() { - if (m_Node->GetName() == _T("page")) + if (m_Node->GetName() == _T("notebookpage")) { - wxXmlNode *n = GetParamNode(_T("child"))->GetChildren(); + wxXmlNode *n = GetParamNode(_T("window"))->GetChildren(); while (n) { if (n->GetType() == wxXML_ELEMENT_NODE) - { + { bool old_ins = m_IsInside; m_IsInside = FALSE; m_IsInside = old_ins; @@ -53,7 +54,7 @@ wxObject *wxNotebookXmlHandler::DoCreateResource() wxWindow *wnd = wxDynamicCast(item, wxWindow); if (wnd) - m_Notebook->AddPage(wnd, GetText(_T("label")), + m_Notebook->AddPage(wnd, GetText(_T("label")), GetBool(_T("selected"), 0)); else wxLogError(_T("Error in resource.")); @@ -79,8 +80,11 @@ wxObject *wxNotebookXmlHandler::DoCreateResource() CreateChildren(m_Notebook, TRUE/*only this handler*/); m_IsInside = old_ins; m_Notebook = old_par; - - return nb; + + if (GetBool(_T("usenotebooksizer"), FALSE)) + return new wxNotebookSizer(nb); + else + return nb; } } @@ -89,7 +93,7 @@ wxObject *wxNotebookXmlHandler::DoCreateResource() bool wxNotebookXmlHandler::CanHandle(wxXmlNode *node) { return ((!m_IsInside && node->GetName() == _T("notebook")) || - (m_IsInside && node->GetName() == _T("page"))); + (m_IsInside && node->GetName() == _T("notebookpage"))); } #endif diff --git a/contrib/src/xml/xh_sizer.cpp b/contrib/src/xml/xh_sizer.cpp index f339d0609c..0442de477e 100644 --- a/contrib/src/xml/xh_sizer.cpp +++ b/contrib/src/xml/xh_sizer.cpp @@ -25,6 +25,16 @@ #include "wx/statbox.h" #include "wx/notebook.h" +static bool IsSizerNode(wxXmlNode *node) +{ + return (node->GetName() == _T("boxsizer")) || + (node->GetName() == _T("staticboxsizer")) || + (node->GetName() == _T("gridsizer")) || + (node->GetName() == _T("flexgridsizer")); +} + + + wxSizerXmlHandler::wxSizerXmlHandler() : wxXmlResourceHandler(), m_IsInside(FALSE), m_ParentSizer(NULL) { @@ -72,9 +82,12 @@ wxObject *wxSizerXmlHandler::DoCreateResource() if (n->GetType() == wxXML_ELEMENT_NODE) { bool old_ins = m_IsInside; + wxSizer *old_par = m_ParentSizer; m_IsInside = FALSE; + if (!IsSizerNode(n)) m_ParentSizer = NULL; wxObject *item = CreateResFromNode(n, m_Parent, NULL); m_IsInside = old_ins; + m_ParentSizer = old_par; wxSizer *sizer = wxDynamicCast(item, wxSizer); wxWindow *wnd = wxDynamicCast(item, wxWindow); @@ -104,35 +117,7 @@ wxObject *wxSizerXmlHandler::DoCreateResource() return NULL; } -#if wxUSE_NOTEBOOK - else if (m_Node->GetName() == _T("notebooksizer")) - { - wxCHECK_MSG(m_ParentSizer, NULL, _T("Incorrect syntax of XML resource: notebooksizer not within sizer!")); - wxSizer *old_par = m_ParentSizer; - m_ParentSizer = NULL; - - wxNotebook *nb = NULL; - wxObject *item; - wxXmlNode *n = GetParamNode(_T("window"))->GetChildren(); - while (n) - { - if (n->GetType() == wxXML_ELEMENT_NODE) - { - item = CreateResFromNode(n, m_Parent, NULL); - nb = wxDynamicCast(item, wxNotebook); - break; - } - n = n->GetNext(); - } - - m_ParentSizer = old_par; - - wxCHECK_MSG(nb, NULL, _T("Incorrect syntax of XML resource: notebooksizer must contain a notebook!")); - return new wxNotebookSizer(nb); - } -#endif - else { wxSizer *sizer = NULL; @@ -193,13 +178,7 @@ wxObject *wxSizerXmlHandler::DoCreateResource() bool wxSizerXmlHandler::CanHandle(wxXmlNode *node) { - return ((!m_IsInside && node->GetName() == _T("boxsizer")) || - (!m_IsInside && node->GetName() == _T("staticboxsizer")) || - (!m_IsInside && node->GetName() == _T("gridsizer")) || - (!m_IsInside && node->GetName() == _T("flexgridsizer")) || -#if wxUSE_NOTEBOOK - (!m_IsInside && node->GetName() == _T("notebooksizer")) || -#endif + return ((!m_IsInside && IsSizerNode(node)) || (m_IsInside && node->GetName() == _T("sizeritem")) || (m_IsInside && node->GetName() == _T("spacer"))); }