]> git.saurik.com Git - wxWidgets.git/commitdiff
notebooksizer is now property of notebook, not special kind of sizer
authorVáclav Slavík <vslavik@fastmail.fm>
Thu, 27 Jul 2000 18:51:07 +0000 (18:51 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Thu, 27 Jul 2000 18:51:07 +0000 (18:51 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/src/xml/xh_notbk.cpp
contrib/src/xml/xh_sizer.cpp

index 30b4b6322a91cb62c67ac79ed2e34264f60fcc24..deaf745f1a8ec4cfa5f4d662bc63740f39bebde6 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        xh_notbk.cpp
 /////////////////////////////////////////////////////////////////////////////
 // Name:        xh_notbk.cpp
-// Purpose:     XML resource for wxBoxSizer
+// Purpose:     XML resource for wxNotebook
 // Author:      Vaclav Slavik
 // Created:     2000/03/21
 // RCS-ID:      $Id$
 // Author:      Vaclav Slavik
 // Created:     2000/03/21
 // RCS-ID:      $Id$
@@ -25,6 +25,7 @@
 
 #include "wx/log.h"
 #include "wx/notebook.h"
 
 #include "wx/log.h"
 #include "wx/notebook.h"
+#include "wx/sizer.h"
 
 wxNotebookXmlHandler::wxNotebookXmlHandler() 
 : wxXmlResourceHandler(), m_IsInside(FALSE), m_Notebook(NULL)
 
 wxNotebookXmlHandler::wxNotebookXmlHandler() 
 : wxXmlResourceHandler(), m_IsInside(FALSE), m_Notebook(NULL)
@@ -39,13 +40,13 @@ wxNotebookXmlHandler::wxNotebookXmlHandler()
 
 wxObject *wxNotebookXmlHandler::DoCreateResource()
 { 
 
 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)
         while (n)
         {
             if (n->GetType() == wxXML_ELEMENT_NODE)
-            {        
+            {
                 bool old_ins = m_IsInside;
                 m_IsInside = FALSE;
                 m_IsInside = old_ins;
                 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)
                 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."));              
                                              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;
         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")) ||
 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
 }
 
 #endif
index f339d0609c150c407213778524db68b43fba6653..0442de477eadb678d8b467054ce6ab0b042a2070 100644 (file)
 #include "wx/statbox.h"
 #include "wx/notebook.h"
 
 #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)
 {
 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;
             if (n->GetType() == wxXML_ELEMENT_NODE)
             {        
                 bool old_ins = m_IsInside;
+                wxSizer *old_par = m_ParentSizer;
                 m_IsInside = FALSE;
                 m_IsInside = FALSE;
+                if (!IsSizerNode(n)) m_ParentSizer = NULL;
                 wxObject *item = CreateResFromNode(n, m_Parent, NULL);
                 m_IsInside = old_ins;
                 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);
                 
                 wxSizer *sizer = wxDynamicCast(item, wxSizer);
                 wxWindow *wnd = wxDynamicCast(item, wxWindow);
                 
@@ -104,35 +117,7 @@ wxObject *wxSizerXmlHandler::DoCreateResource()
         return NULL;
     }
     
         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;
         
     else {
         wxSizer *sizer = NULL;
         
@@ -193,13 +178,7 @@ wxObject *wxSizerXmlHandler::DoCreateResource()
 
 bool wxSizerXmlHandler::CanHandle(wxXmlNode *node)
 {
 
 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")));
 }
             (m_IsInside && node->GetName() == _T("sizeritem")) ||
             (m_IsInside && node->GetName() == _T("spacer")));
 }