X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/56d2f75071fc2a29ec10abe97c5a908bb35f30f4..00b2a5df9502adfd9a14ce01ab603f7906984995:/contrib/src/xml/xh_notbk.cpp diff --git a/contrib/src/xml/xh_notbk.cpp b/contrib/src/xml/xh_notbk.cpp index 30b4b6322a..51f18c983d 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,62 +25,67 @@ #include "wx/log.h" #include "wx/notebook.h" +#include "wx/sizer.h" wxNotebookXmlHandler::wxNotebookXmlHandler() -: wxXmlResourceHandler(), m_IsInside(FALSE), m_Notebook(NULL) +: wxXmlResourceHandler(), m_isInside(FALSE), m_notebook(NULL) { ADD_STYLE(wxNB_FIXEDWIDTH); ADD_STYLE(wxNB_LEFT); ADD_STYLE(wxNB_RIGHT); ADD_STYLE(wxNB_BOTTOM); + AddWindowStyles(); } wxObject *wxNotebookXmlHandler::DoCreateResource() { - if (m_Node->GetName() == _T("page")) + if (m_class == wxT("notebookpage")) { - wxXmlNode *n = GetParamNode(_T("child"))->GetChildren(); - while (n) + wxXmlNode *n = GetParamNode(wxT("object")); + + if (n) { - if (n->GetType() == wxXML_ELEMENT_NODE) - { - bool old_ins = m_IsInside; - m_IsInside = FALSE; - m_IsInside = old_ins; - wxObject *item = CreateResFromNode(n, m_Notebook, NULL); - wxWindow *wnd = wxDynamicCast(item, wxWindow); - - if (wnd) - m_Notebook->AddPage(wnd, GetText(_T("label")), - GetBool(_T("selected"), 0)); - else - wxLogError(_T("Error in resource.")); - return wnd; - } - n = n->GetNext(); + bool old_ins = m_isInside; + m_isInside = FALSE; + m_isInside = old_ins; + wxObject *item = CreateResFromNode(n, m_notebook, NULL); + wxWindow *wnd = wxDynamicCast(item, wxWindow); + + if (wnd) + m_notebook->AddPage(wnd, GetText(wxT("label")), + GetBool(wxT("selected"), 0)); + else + wxLogError(wxT("Error in resource.")); + return wnd; + } + else + { + wxLogError(wxT("Error in resource: no control within notebook's tag.")); + return NULL; } - wxLogError(_T("Error in resource: no control within notebook's tag.")); - return NULL; } else { - wxNotebook *nb = new wxNotebook(m_ParentAsWindow, + wxNotebook *nb = new wxNotebook(m_parentAsWindow, GetID(), GetPosition(), GetSize(), - GetStyle( _T("style" )), + GetStyle( wxT("style" )), GetName()); - wxNotebook *old_par = m_Notebook; - m_Notebook = nb; - bool old_ins = m_IsInside; - m_IsInside = TRUE; - CreateChildren(m_Notebook, TRUE/*only this handler*/); - m_IsInside = old_ins; - m_Notebook = old_par; - - return nb; + wxNotebook *old_par = m_notebook; + m_notebook = nb; + bool old_ins = m_isInside; + m_isInside = TRUE; + CreateChildren(m_notebook, TRUE/*only this handler*/); + m_isInside = old_ins; + m_notebook = old_par; + + if (GetBool(wxT("usenotebooksizer"), FALSE)) + return new wxNotebookSizer(nb); + else + return nb; } } @@ -88,8 +93,8 @@ wxObject *wxNotebookXmlHandler::DoCreateResource() bool wxNotebookXmlHandler::CanHandle(wxXmlNode *node) { - return ((!m_IsInside && node->GetName() == _T("notebook")) || - (m_IsInside && node->GetName() == _T("page"))); + return ((!m_isInside && IsOfClass(node, wxT("wxNotebook"))) || + (m_isInside && IsOfClass(node, wxT("notebookpage")))); } #endif