+WX_DECLARE_USER_EXPORTED_OBJARRAY(wxVariant, wxRichTextVariantArray, WXDLLIMPEXP_RICHTEXT);
+
+// ----------------------------------------------------------------------------
+// wxRichTextProperties - A simple property class using wxVariants
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_RICHTEXT wxRichTextProperties: public wxObject
+{
+DECLARE_DYNAMIC_CLASS(wxRichTextProperties)
+public:
+ wxRichTextProperties() {}
+ wxRichTextProperties(const wxRichTextProperties& props) { Copy(props); }
+
+ void operator=(const wxRichTextProperties& props) { Copy(props); }
+ bool operator==(const wxRichTextProperties& props) const;
+ void Copy(const wxRichTextProperties& props) { m_properties = props.m_properties; }
+ const wxVariant& operator[](size_t idx) const { return m_properties[idx]; }
+ wxVariant& operator[](size_t idx) { return m_properties[idx]; }
+ void Clear() { m_properties.Clear(); }
+
+ const wxRichTextVariantArray& GetProperties() const { return m_properties; }
+ wxRichTextVariantArray& GetProperties() { return m_properties; }
+ void SetProperties(const wxRichTextVariantArray& props) { m_properties = props; }
+
+ wxArrayString GetPropertyNames() const;
+
+ size_t GetCount() const { return m_properties.GetCount(); }
+
+ int HasProperty(const wxString& name) const { return Find(name) != -1; }
+
+ int Find(const wxString& name) const;
+ const wxVariant& GetProperty(const wxString& name) const;
+ wxVariant* FindOrCreateProperty(const wxString& name);
+
+ wxString GetPropertyString(const wxString& name) const;
+ long GetPropertyLong(const wxString& name) const;
+ bool GetPropertyBool(const wxString& name) const;
+ double GetPropertyDouble(const wxString& name) const;
+
+ void SetProperty(const wxVariant& variant);
+ void SetProperty(const wxString& name, const wxVariant& variant);
+ void SetProperty(const wxString& name, const wxString& value);
+ void SetProperty(const wxString& name, long value);
+ void SetProperty(const wxString& name, double value);
+ void SetProperty(const wxString& name, bool value);
+
+protected:
+ wxRichTextVariantArray m_properties;
+};
+
+