00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef _WX_VARIANTPROPERTYOBJ_H_
00013 #define _WX_VARIANTPROPERTYOBJ_H_
00014
00015 #include "wx/defs.h"
00016 #include "wx/variant.h"
00017
00018 #include "variantref.h"
00019
00020 class wxImageBlock;
00021
00022
00023
00024
00025
00030 class wxVariantObjectSetData: public wxClonableVariantData
00031 {
00032 DECLARE_DYNAMIC_CLASS(wxVariantObjectSetData)
00033 public:
00034
00035
00036
00037 wxVariantObjectSetData();
00038 wxVariantObjectSetData(const wxVariantObjectSetData& data);
00039 ~wxVariantObjectSetData();
00040
00041
00042
00044
00046 virtual wxVariantData* Clone() { return new wxVariantObjectSetData(*this); }
00047 virtual bool Eq(wxVariantData& data) const;
00048 virtual bool Write(wxString& str) const;
00049 virtual bool Read(wxString& str);
00050
00051
00052 virtual wxString GetType() const { return wxT("objectset"); }
00053
00054
00055
00057 void Clear();
00058
00060 bool DeleteObject(size_t i);
00061
00063 wxVariant* GetObject(size_t i) const;
00064
00066 wxVariant* FindObject(const wxString& field, const wxString& name) const;
00067
00069 void AddObject(wxVariant* data);
00070
00072 size_t GetCount() const { return m_objects.GetCount(); }
00073
00074 private:
00075
00077 wxList m_objects;
00078 };
00079
00080
00081
00082
00083 bool wxIsVariantObjectSetData(const wxVariant& variant);
00084
00085
00086 wxVariantObjectSetData* wxGetVariantObjectSetData(const wxVariant& variant);
00087
00088
00089 wxVariant wxCreateVariantObjectSetVariant();
00090
00092 void wxVariantSetProperty(wxVariant& var, const wxString& name, const wxVariant& value);
00093
00095 void wxVariantSetProperty(wxVariant& var, const wxString& name, const wxString& value);
00096
00098 void wxVariantSetProperty(wxVariant& var, int i, const wxVariant& value);
00099
00101 void wxVariantSetProperty(wxVariant& var, int i, const wxString& value);
00102
00104 wxVariant* wxVariantFindPropertyPtr(const wxVariant& var, const wxString& name);
00105
00107 wxVariant wxVariantFindProperty(const wxVariant& var, const wxString& name);
00108
00110 wxString wxVariantFindPropertyString(const wxVariant& var, const wxString& name);
00111
00113 wxVariant* wxVariantGetPropertyPtr(const wxVariant& var, int i);
00114
00116 wxVariant wxVariantGetProperty(const wxVariant& var, int i);
00117
00123 class wxVariantObjectSetAccessor
00124 {
00125 public:
00126
00127
00128
00129 wxVariantObjectSetAccessor(wxVariant& objectSet) { m_objectSet = & objectSet; }
00130 wxVariantObjectSetAccessor(wxVariant* objectSet) { m_objectSet = objectSet; }
00131 wxVariantObjectSetAccessor(const wxVariant* objectSet) { m_objectSet = (wxVariant*) objectSet; }
00132
00133
00134
00136 bool IsValid() const;
00137
00139 bool MakeObjectSet();
00140
00142 bool Clear();
00143
00145 wxVariant* GetVariant(int n);
00146 wxVariant GetVariant(int n) const;
00147
00149 void SetVariant(int n, const wxVariant& variant);
00150
00152 wxVariant* FindVariant(const wxString& property, const wxVariant& value);
00153 wxVariant* FindVariant(const wxString& property, const wxString& value);
00154
00156 int FindVariantIndex(wxVariant* var);
00157
00159 void AddVariant(wxVariant* variant);
00160
00162 void InsertVariant(wxVariant* variant, int pos);
00163
00165 bool DeleteVariant(int pos);
00166
00168
00169
00170
00172 wxVariant* GetProperty(int var, int property);
00173
00175 wxVariant* FindProperty(int var, const wxString& propertyName);
00176
00178 int GetPropertyIndex(int var, const wxString& propertyName);
00179
00181 bool SetProperty(int var, const wxString& propertyName, const wxVariant& value);
00182 bool SetProperty(int var, const wxString& propertyName, const wxString& value);
00183 bool SetProperty(int var, int property, const wxVariant& value);
00184 bool SetProperty(int var, int property, const wxString& value);
00185
00187 bool SetPropertyImage(int var, int property, const wxImage& image, int type = wxBITMAP_TYPE_JPEG);
00188 bool SetPropertyImage(int var, int property, const wxString& filename, int type = wxBITMAP_TYPE_JPEG);
00189 bool SetPropertyImage(int var, const wxString& propertyName, const wxImage& image, int type = wxBITMAP_TYPE_JPEG);
00190 bool SetPropertyImage(int var, const wxString& propertyName, const wxString& filename, int type = wxBITMAP_TYPE_JPEG);
00191
00193 wxImage* GetPropertyImage(int var, int property);
00194 wxImage* FindPropertyImage(int var, const wxString& propertyName);
00195
00197 wxImageBlock* GetPropertyImageBlock(int var, int property);
00198 wxImageBlock* FindPropertyImageBlock(int var, const wxString& propertyName);
00199
00201 bool MakePropertyImage(int var, int property, bool force = false);
00202 bool MakePropertyImage(int var, const wxString& propertyName, bool force = false);
00203
00205 wxVariant Copy() const;
00206
00208 int GetCount() const;
00209
00211 void AllocExclusive() const;
00212
00213
00214
00215 wxVariant* GetObjectSet() { return m_objectSet; }
00216 void SetObjectSet(wxVariant* objectSet) { m_objectSet = objectSet; }
00217
00219 wxVariantObjectSetData* GetData() const;
00220
00221 private:
00222 wxVariant* m_objectSet;
00223 };
00224
00225
00226
00227
00228 #endif
00229