reworked the editor

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2000-11-04 23:34:33 +00:00
parent dbb88122c9
commit 12d9e30820
26 changed files with 2626 additions and 1198 deletions

View File

@@ -19,12 +19,15 @@
#include "wx/xml/xml.h"
#include "wx/wx.h"
#include "wx/tokenzr.h"
#include "xmlhelpr.h"
wxXmlNode *XmlFindNode(wxXmlNode *parent, const wxString& param)
wxXmlNode *XmlFindNodeSimple(wxXmlNode *parent, const wxString& param)
{
if (param.IsEmpty()) return parent;
wxXmlNode *n = parent->GetChildren();
while (n)
@@ -37,14 +40,33 @@ wxXmlNode *XmlFindNode(wxXmlNode *parent, const wxString& param)
}
wxXmlNode *XmlFindNode(wxXmlNode *parent, const wxString& path)
{
wxXmlNode *n = parent;
wxStringTokenizer tkn(path, _T("/"));
while (tkn.HasMoreTokens())
{
n = XmlFindNodeSimple(n, tkn.GetNextToken());
if (n == NULL) break;
}
return n;
}
void XmlWriteValue(wxXmlNode *parent, const wxString& name, const wxString& value)
{
wxXmlNode *n = XmlFindNode(parent, name);
if (n == NULL)
{
n = new wxXmlNode(wxXML_ELEMENT_NODE, name);
parent->AddChild(n);
n->AddChild(new wxXmlNode(wxXML_TEXT_NODE, ""));
wxString pname = name.BeforeLast(_T('/'));
if (pname.IsEmpty()) pname = name;
wxXmlNode *p = XmlFindNode(parent, pname);
if (p == NULL) p = parent;
n = new wxXmlNode(wxXML_ELEMENT_NODE, name.AfterLast(_T('/')));
p->AddChild(n);
n->AddChild(new wxXmlNode(wxXML_TEXT_NODE, wxEmptyString));
}
n = n->GetChildren();