00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _CEGUIXMLAttributes_h_
00029 #define _CEGUIXMLAttributes_h_
00030
00031 #include "CEGUIBase.h"
00032 #include "CEGUIString.h"
00033 #include <map>
00034
00035 #if defined(_MSC_VER)
00036 # pragma warning(push)
00037 # pragma warning(disable : 4251)
00038 #endif
00039
00040
00041 namespace CEGUI
00042 {
00047 class CEGUIEXPORT XMLAttributes
00048 {
00049 public:
00054 XMLAttributes(void);
00055
00060 virtual ~XMLAttributes(void);
00061
00076 void add(const String& attrName, const String& attrValue);
00077
00088 void remove(const String& attrName);
00089
00101 bool exists(const String& attrName) const;
00102
00110 size_t getCount(void) const;
00111
00128 const String& getName(size_t index) const;
00129
00146 const String& getValue(size_t index) const;
00147
00160 const String& getValue(const String& attrName) const;
00161
00177 const String& getValueAsString(const String& attrName, const String& def = "") const;
00178
00196 bool getValueAsBool(const String& attrName, bool def = false) const;
00197
00215 int getValueAsInteger(const String& attrName, int def = 0) const;
00216
00234 float getValueAsFloat(const String& attrName, float def = 0.0f) const;
00235
00236 protected:
00237 typedef std::map<String, String, String::FastLessCompare> AttributeMap;
00238 AttributeMap d_attrs;
00239 };
00240
00241 }
00242
00243
00244 #if defined(_MSC_VER)
00245 # pragma warning(pop)
00246 #endif
00247
00248 #endif // end of guard _CEGUIXMLAttributes_h_