]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/xml/xh_notbk.cpp
added 'name' to wxEditableListBox ctor
[wxWidgets.git] / contrib / src / xml / xh_notbk.cpp
index 30b4b6322a91cb62c67ac79ed2e34264f60fcc24..51f18c983d1691e440b598945f9c48f01190051a 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$
 
 #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 <page> tag."));
+            return NULL;
         }
-        wxLogError(_T("Error in resource: no control within notebook's <page> 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