00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef SKIN_PARSER_HPP
00025 #define SKIN_PARSER_HPP
00026
00027 #include "xmlparser.hpp"
00028 #include "builder_data.hpp"
00029 #include <set>
00030
00031
00033 class SkinParser: public XMLParser
00034 {
00035 public:
00036 SkinParser( intf_thread_t *pIntf, const string &rFileName,
00037 const string &rPath );
00038 virtual ~SkinParser() {}
00039
00040 const BuilderData &getData() const { return m_data; }
00041
00042 private:
00044 BuilderData m_data;
00046 string m_curWindowId;
00047 string m_curLayoutId;
00048 string m_curListId;
00049 string m_curTreeId;
00051 int m_xOffset, m_yOffset;
00052 list<int> m_xOffsetList, m_yOffsetList;
00054 int m_curLayer;
00056 set<string> m_idSet;
00058 const string m_path;
00059
00061 virtual void handleBeginElement( const string &rName,
00062 AttrList_t &attr );
00063 virtual void handleEndElement( const string &rName );
00064
00066
00067 bool convertBoolean( const char *value ) const;
00068 int convertColor( const char *transcolor ) const;
00069 string convertFileName( const char *fileName ) const;
00072 int convertInRange( const char *value, int minValue, int maxValue,
00073 const string &rAttribute ) const;
00075
00077 const string generateId() const;
00078
00080 const string uniqueId( const string &id );
00081 };
00082
00083 #endif