#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("notebookpage"))
+ if (m_class == wxT("notebookpage"))
{
- wxXmlNode *n = GetParamNode(_T("window"))->GetChildren();
- while (n)
+ wxXmlNode *n = GetParamNode(wxT("object"));
+
+ if (n)
+ {
+ 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
{
- 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();
+ 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;
-
- if (GetBool(_T("usenotebooksizer"), FALSE))
+ 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;
bool wxNotebookXmlHandler::CanHandle(wxXmlNode *node)
{
- return ((!m_IsInside && node->GetName() == _T("notebook")) ||
- (m_IsInside && node->GetName() == _T("notebookpage")));
+ return ((!m_isInside && IsOfClass(node, wxT("wxNotebook"))) ||
+ (m_isInside && IsOfClass(node, wxT("notebookpage"))));
}
#endif