X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/288b6107e1060b57ec50048d06cfc3f22bc11e0c..51181d291194b7ae616cfb17c984fd8927e4a977:/include/wx/xml/xml.h diff --git a/include/wx/xml/xml.h b/include/wx/xml/xml.h index 030f4d34c1..939e526098 100644 --- a/include/wx/xml/xml.h +++ b/include/wx/xml/xml.h @@ -103,10 +103,16 @@ class WXDLLIMPEXP_XML wxXmlNode { public: wxXmlNode() - : m_attrs(NULL), m_parent(NULL), m_children(NULL), m_next(NULL) {} + : m_attrs(NULL), m_parent(NULL), m_children(NULL), m_next(NULL), + m_lineNo(-1) + { + } + wxXmlNode(wxXmlNode *parent, wxXmlNodeType type, const wxString& name, const wxString& content = wxEmptyString, - wxXmlAttribute *attrs = NULL, wxXmlNode *next = NULL); + wxXmlAttribute *attrs = NULL, wxXmlNode *next = NULL, + int lineNo = -1); + virtual ~wxXmlNode(); // copy ctor & operator=. Note that this does NOT copy syblings @@ -118,14 +124,14 @@ public: // user-friendly creation: wxXmlNode(wxXmlNodeType type, const wxString& name, - const wxString& content = wxEmptyString); + const wxString& content = wxEmptyString, + int lineNo = -1); virtual void AddChild(wxXmlNode *child); - virtual bool InsertChild(wxXmlNode *child, wxXmlNode *before_node); + virtual bool InsertChild(wxXmlNode *child, wxXmlNode *followingNode); + virtual bool InsertChildAfter(wxXmlNode *child, wxXmlNode *precedingNode); virtual bool RemoveChild(wxXmlNode *child); - virtual void AddAttribute(const wxString& name, const wxString& value) - { AddProperty(name, value); } - virtual bool DeleteAttribute(const wxString& name) - { return DeleteProperty(name); } + virtual void AddAttribute(const wxString& name, const wxString& value); + virtual bool DeleteAttribute(const wxString& name); // access methods: wxXmlNodeType GetType() const { return m_type; } @@ -149,9 +155,11 @@ public: wxXmlAttribute *GetAttributes() const { return m_attrs; } bool GetAttribute(const wxString& attrName, wxString *value) const; wxString GetAttribute(const wxString& attrName, - const wxString& defaultVal) const; + const wxString& defaultVal = wxEmptyString) const; bool HasAttribute(const wxString& attrName) const; + int GetLineNumber() const { return m_lineNo; } + void SetType(wxXmlNodeType type) { m_type = type; } void SetName(const wxString& name) { m_name = name; } void SetContent(const wxString& con) { m_content = con; } @@ -161,8 +169,7 @@ public: void SetChildren(wxXmlNode *child) { m_children = child; } void SetAttributes(wxXmlAttribute *attr) { m_attrs = attr; } - virtual void AddAttribute(wxXmlAttribute *attr) - { AddProperty(attr); } + virtual void AddAttribute(wxXmlAttribute *attr); #if WXWIN_COMPATIBILITY_2_8 wxDEPRECATED( inline wxXmlAttribute *GetProperties() const ); @@ -202,6 +209,7 @@ private: wxString m_content; wxXmlAttribute *m_attrs; wxXmlNode *m_parent, *m_children, *m_next; + int m_lineNo; // line number in original file, or -1 void DoCopy(const wxXmlNode& node); }; @@ -255,7 +263,7 @@ public: const wxString& encoding = wxT("UTF-8"), int flags = wxXMLDOC_NONE); virtual bool Load(wxInputStream& stream, const wxString& encoding = wxT("UTF-8"), int flags = wxXMLDOC_NONE); - + // Saves document as .xml file. virtual bool Save(const wxString& filename, int indentstep = 1) const; virtual bool Save(wxOutputStream& stream, int indentstep = 1) const;