X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6e26d6b78ce9f502f8fa7a432d2fc4cee734e826..a7f62f39092512cda56bc0bb89cdabf156f05385:/include/wx/xml/xml.h?ds=inline diff --git a/include/wx/xml/xml.h b/include/wx/xml/xml.h index 22f3e8978b..6cac2aac77 100644 --- a/include/wx/xml/xml.h +++ b/include/wx/xml/xml.h @@ -19,6 +19,7 @@ #include "wx/string.h" #include "wx/object.h" #include "wx/list.h" +#include "wx/versioninfo.h" #ifdef WXMAKINGDLL_XML #define WXDLLIMPEXP_XML WXEXPORT @@ -35,7 +36,6 @@ class WXDLLIMPEXP_FWD_XML wxXmlIOHandler; class WXDLLIMPEXP_FWD_BASE wxInputStream; class WXDLLIMPEXP_FWD_BASE wxOutputStream; - // Represents XML node type. enum wxXmlNodeType { @@ -69,8 +69,8 @@ public: : m_name(name), m_value(value), m_next(next) {} virtual ~wxXmlAttribute() {} - wxString GetName() const { return m_name; } - wxString GetValue() const { return m_value; } + const wxString& GetName() const { return m_name; } + const wxString& GetValue() const { return m_value; } wxXmlAttribute *GetNext() const { return m_next; } void SetName(const wxString& name) { m_name = name; } @@ -104,7 +104,7 @@ class WXDLLIMPEXP_XML wxXmlNode public: wxXmlNode() : m_attrs(NULL), m_parent(NULL), m_children(NULL), m_next(NULL), - m_lineNo(-1) + m_lineNo(-1), m_noConversion(false) { } @@ -127,12 +127,11 @@ public: 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; } @@ -156,7 +155,7 @@ 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; } @@ -170,8 +169,11 @@ 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 true, don't do encoding conversion to improve efficiency - node content is ACII text + bool GetNoConversion() const { return m_noConversion; } + void SetNoConversion(bool noconversion) { m_noConversion = noconversion; } #if WXWIN_COMPATIBILITY_2_8 wxDEPRECATED( inline wxXmlAttribute *GetProperties() const ); @@ -211,7 +213,8 @@ private: wxString m_content; wxXmlAttribute *m_attrs; wxXmlNode *m_parent, *m_children, *m_next; - int m_lineNo; // line number in original file, or -1 + int m_lineNo; // line number in original file, or -1 + bool m_noConversion; // don't do encoding conversion - node is plain text void DoCopy(const wxXmlNode& node); }; @@ -265,10 +268,10 @@ 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; + virtual bool Save(const wxString& filename, int indentstep = 2) const; + virtual bool Save(wxOutputStream& stream, int indentstep = 2) const; bool IsOk() const { return m_root != NULL; } @@ -296,6 +299,8 @@ public: void SetEncoding(const wxString& enc) { m_encoding = enc; } #endif + static wxVersionInfo GetLibraryVersionInfo(); + private: wxString m_version; wxString m_fileEncoding;