00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef INC_MGUI_XMLDATA_H
00019 #define INC_MGUI_XMLDATA_H
00020
00021
00022 #ifndef INC_MI32_COLOR_H
00023 #include <mi32/color.h>
00024 #endif
00025
00026 #ifndef INC_MI32_XML_H
00027 #include <mi32/xml.h>
00028 #endif
00029
00030 namespace MGUI {
00031
00032
00084 class XMLFORM_DATA : public XMLDOC {
00085 public:
00086
00087 enum PROPERTY {
00088 PROPERTY_Value = 0,
00089 PROPERTY_Min,
00090 PROPERTY_Max,
00091 };
00092
00094 XMLFORM_DATA (
00095 );
00096
00099 XMLFORM_DATA (
00100 const XMLNODE* InitialValues
00101 );
00102
00104 XMLFORM_DATA (
00105 const XMLFORM_DATA&
00106 );
00107
00108
00109
00113 bool GetValue (
00114 const char* id,
00115 MISTRING& value
00116 ) const;
00117
00123 bool GetValue (
00124 const char* id,
00125 double& value,
00126 XMLFORM_DATA::PROPERTY property = PROPERTY_Value
00127 ) const;
00128
00134 bool GetValue (
00135 const char* id,
00136 INT32& value,
00137 XMLFORM_DATA::PROPERTY property = PROPERTY_Value
00138 ) const;
00139
00142 bool GetValue (
00143 const char* id,
00144 bool& value
00145 ) const;
00146
00147
00150 bool GetValue (
00151 const char* id,
00152 COLOR& value
00153 ) const;
00154
00155
00157 XMLNODE* GetRecordNode (
00158 ) const {
00159 return m_root;
00160 }
00161
00162
00163
00165 void SetValue (
00166 const char* id,
00167 const MISTRING& value
00168 );
00169
00171 void SetValue (
00172 const char* id,
00173 double value,
00174 XMLFORM_DATA::PROPERTY property = PROPERTY_Value
00175 );
00176
00178 void SetValue (
00179 const char* id,
00180 bool value
00181 );
00182
00184 void SetValue (
00185 const char* id,
00186 const COLOR& value
00187 );
00188
00189 private:
00190 #ifndef GENERATING_DOXYGEN_OUTPUT
00191
00192 enum TYPE {
00193 TYPE_Int,
00194 TYPE_Double,
00195 TYPE_String,
00196 TYPE_Bool,
00197 TYPE_Color
00198 };
00199
00200 XMLNODE* m_root;
00201
00202 XMLNODE* FindNode (
00203 const char* id,
00204 bool create = false
00205 ) const;
00206
00207 void OnDocReplaced();
00208
00210 void InternalSetValue (
00211 const char* id,
00212 const MISTRING& value,
00213 PROPERTY property,
00214 TYPE type
00215 );
00216 #endif // GENERATING_DOXYGEN_OUTPUT
00217
00218 };
00219
00220 }
00221
00222 #endif