]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/xml/xh_notbk.cpp
Added VC++ project files (seems logical)
[wxWidgets.git] / contrib / src / xml / xh_notbk.cpp
index 30b4b6322a91cb62c67ac79ed2e34264f60fcc24..fa8bec1b823d03b8f737ec4a437edff7c7551bdc 100644 (file)
@@ -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)
@@ -33,36 +34,37 @@ wxNotebookXmlHandler::wxNotebookXmlHandler()
     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 == _T("notebookpage"))
     {
-        wxXmlNode *n = GetParamNode(_T("child"))->GetChildren();
-        while (n)
+        wxXmlNode *n = GetParamNode(_T("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(_T("label")),
+                                         GetBool(_T("selected"), 0));
+            else 
+                wxLogError(_T("Error in resource."));              
+            return wnd;
+        }
+        else
+        {
+            wxLogError(_T("Error in resource: no control within notebook's <page> tag."));
+            return NULL;
         }
-        wxLogError(_T("Error in resource: no control within notebook's <page> tag."));
-        return NULL;
     }
     
     else {
@@ -79,8 +81,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;
     }
 }
 
@@ -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, _T("wxNotebook"))) ||
+            (m_IsInside && IsOfClass(node, _T("notebookpage"))));
 }
 
 #endif