#include "wx/string.h"
#include "wx/object.h"
#include "wx/list.h"
+#include "wx/versioninfo.h"
#ifdef WXMAKINGDLL_XML
#define WXDLLIMPEXP_XML WXEXPORT
class WXDLLIMPEXP_FWD_BASE wxInputStream;
class WXDLLIMPEXP_FWD_BASE wxOutputStream;
-
// Represents XML node type.
enum wxXmlNodeType
{
: 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; }
public:
wxXmlNode()
: m_attrs(NULL), m_parent(NULL), m_children(NULL), m_next(NULL),
- m_lineNo(-1)
+ m_lineNo(-1), m_noConversion(false)
{
}
int lineNo = -1);
virtual void AddChild(wxXmlNode *child);
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);
virtual bool DeleteAttribute(const wxString& name);
void SetAttributes(wxXmlAttribute *attr) { m_attrs = 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 );
wxDEPRECATED( inline bool GetPropVal(const wxString& propName,
wxXmlAttribute *m_attrs;
wxXmlNode *m_parent, *m_children, *m_next;
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);
};
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; }
void SetEncoding(const wxString& enc) { m_encoding = enc; }
#endif
+ static wxVersionInfo GetLibraryVersionInfo();
+
private:
wxString m_version;
wxString m_fileEncoding;