notebooksizer is now property of notebook, not special kind of sizer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -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
|
// Author: Vaclav Slavik
|
||||||
// Created: 2000/03/21
|
// Created: 2000/03/21
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include "wx/log.h"
|
#include "wx/log.h"
|
||||||
#include "wx/notebook.h"
|
#include "wx/notebook.h"
|
||||||
|
#include "wx/sizer.h"
|
||||||
|
|
||||||
wxNotebookXmlHandler::wxNotebookXmlHandler()
|
wxNotebookXmlHandler::wxNotebookXmlHandler()
|
||||||
: wxXmlResourceHandler(), m_IsInside(FALSE), m_Notebook(NULL)
|
: 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)
|
while (n)
|
||||||
{
|
{
|
||||||
if (n->GetType() == wxXML_ELEMENT_NODE)
|
if (n->GetType() == wxXML_ELEMENT_NODE)
|
||||||
{
|
{
|
||||||
bool old_ins = m_IsInside;
|
bool old_ins = m_IsInside;
|
||||||
m_IsInside = FALSE;
|
m_IsInside = FALSE;
|
||||||
m_IsInside = old_ins;
|
m_IsInside = old_ins;
|
||||||
@@ -53,7 +54,7 @@ wxObject *wxNotebookXmlHandler::DoCreateResource()
|
|||||||
wxWindow *wnd = wxDynamicCast(item, wxWindow);
|
wxWindow *wnd = wxDynamicCast(item, wxWindow);
|
||||||
|
|
||||||
if (wnd)
|
if (wnd)
|
||||||
m_Notebook->AddPage(wnd, GetText(_T("label")),
|
m_Notebook->AddPage(wnd, GetText(_T("label")),
|
||||||
GetBool(_T("selected"), 0));
|
GetBool(_T("selected"), 0));
|
||||||
else
|
else
|
||||||
wxLogError(_T("Error in resource."));
|
wxLogError(_T("Error in resource."));
|
||||||
@@ -79,8 +80,11 @@ wxObject *wxNotebookXmlHandler::DoCreateResource()
|
|||||||
CreateChildren(m_Notebook, TRUE/*only this handler*/);
|
CreateChildren(m_Notebook, TRUE/*only this handler*/);
|
||||||
m_IsInside = old_ins;
|
m_IsInside = old_ins;
|
||||||
m_Notebook = old_par;
|
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)
|
bool wxNotebookXmlHandler::CanHandle(wxXmlNode *node)
|
||||||
{
|
{
|
||||||
return ((!m_IsInside && node->GetName() == _T("notebook")) ||
|
return ((!m_IsInside && node->GetName() == _T("notebook")) ||
|
||||||
(m_IsInside && node->GetName() == _T("page")));
|
(m_IsInside && node->GetName() == _T("notebookpage")));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -25,6 +25,16 @@
|
|||||||
#include "wx/statbox.h"
|
#include "wx/statbox.h"
|
||||||
#include "wx/notebook.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()
|
wxSizerXmlHandler::wxSizerXmlHandler()
|
||||||
: wxXmlResourceHandler(), m_IsInside(FALSE), m_ParentSizer(NULL)
|
: wxXmlResourceHandler(), m_IsInside(FALSE), m_ParentSizer(NULL)
|
||||||
{
|
{
|
||||||
@@ -72,9 +82,12 @@ wxObject *wxSizerXmlHandler::DoCreateResource()
|
|||||||
if (n->GetType() == wxXML_ELEMENT_NODE)
|
if (n->GetType() == wxXML_ELEMENT_NODE)
|
||||||
{
|
{
|
||||||
bool old_ins = m_IsInside;
|
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);
|
wxObject *item = CreateResFromNode(n, m_Parent, NULL);
|
||||||
m_IsInside = old_ins;
|
m_IsInside = old_ins;
|
||||||
|
m_ParentSizer = old_par;
|
||||||
wxSizer *sizer = wxDynamicCast(item, wxSizer);
|
wxSizer *sizer = wxDynamicCast(item, wxSizer);
|
||||||
wxWindow *wnd = wxDynamicCast(item, wxWindow);
|
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 {
|
else {
|
||||||
wxSizer *sizer = NULL;
|
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")) ||
|
return ((!m_IsInside && IsSizerNode(node)) ||
|
||||||
(!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
|
|
||||||
(m_IsInside && node->GetName() == _T("sizeritem")) ||
|
(m_IsInside && node->GetName() == _T("sizeritem")) ||
|
||||||
(m_IsInside && node->GetName() == _T("spacer")));
|
(m_IsInside && node->GetName() == _T("spacer")));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user