1 #ifndef QTX_RESOURCEMGR_H
2 #define QTX_RESOURCEMGR_H
10 #include <qstringlist.h>
11 #include <qtranslator.h>
16 #pragma warning( disable:4251 )
19 class QTX_EXPORT QtxResourceMgr
29 typedef QMap<QString, QString> Section;
32 QtxResourceMgr( const QString&, const QString& = QString::null );
33 virtual ~QtxResourceMgr();
35 QString appName() const;
36 QStringList dirList() const;
40 QString currentSection() const;
41 void setCurrentSection( const QString& );
43 bool value( const QString&, int& ) const;
44 bool value( const QString&, double& ) const;
45 bool value( const QString&, bool& ) const;
46 bool value( const QString&, QColor& ) const;
47 bool value( const QString&, QFont& ) const;
48 bool value( const QString&, QString&, const bool = true ) const;
50 bool value( const QString&, const QString&, int& ) const;
51 bool value( const QString&, const QString&, double& ) const;
52 bool value( const QString&, const QString&, bool& ) const;
53 bool value( const QString&, const QString&, QColor& ) const;
54 bool value( const QString&, const QString&, QFont& ) const;
55 bool value( const QString&, const QString&, QString&, const bool = true ) const;
57 int integerValue( const QString&, const int = 0 ) const;
58 double doubleValue ( const QString&, const double = 0 ) const;
59 bool booleanValue( const QString&, const bool = false ) const;
60 QColor colorValue ( const QString&, const QColor& = QColor() ) const;
61 QFont fontValue ( const QString&, const QFont& = QFont() ) const;
62 QString stringValue ( const QString&, const char* = 0 ) const;
64 int integerValue( const QString&, const QString&, const int = 0 ) const;
65 double doubleValue ( const QString&, const QString&, const double = 0 ) const;
66 bool booleanValue( const QString&, const QString&, const bool = false ) const;
67 QColor colorValue ( const QString&, const QString&, const QColor& = QColor() ) const;
68 QFont fontValue ( const QString&, const QString&, const QFont& = QFont() ) const;
69 QString stringValue ( const QString&, const QString&, const char* = 0 ) const;
71 bool hasSection( const QString& ) const;
72 bool hasValue( const QString& ) const;
73 bool hasValue( const QString&, const QString& ) const;
75 void setValue( const QString&, const int );
76 void setValue( const QString&, const double );
77 void setValue( const QString&, const bool );
78 void setValue( const QString&, const QColor& );
79 void setValue( const QString&, const QFont& );
80 void setValue( const QString&, const QString& );
82 void setValue( const QString&, const QString&, const int );
83 void setValue( const QString&, const QString&, const double );
84 void setValue( const QString&, const QString&, const bool );
85 void setValue( const QString&, const QString&, const QColor& );
86 void setValue( const QString&, const QString&, const QFont& );
87 void setValue( const QString&, const QString&, const QString& );
89 void remove( const QString& );
90 void remove( const QString&, const QString& );
91 void removeSection( const QString& );
93 QString currentFormat() const;
94 void setCurrentFormat( const QString& );
96 Format* format( const QString& ) const;
97 void installFormat( Format* );
98 void removeFormat( Format* );
100 QStringList options() const;
101 QString option( const QString& ) const;
102 void setOption( const QString&, const QString& );
104 QPixmap defaultPixmap() const;
105 virtual void setDefaultPixmap( const QPixmap& );
107 QString resSection() const;
108 QString langSection() const;
110 QPixmap loadPixmap( const QString&, const QString& ) const;
111 QPixmap loadPixmap( const QString&, const QString&, const bool ) const;
112 QPixmap loadPixmap( const QString&, const QString&, const QPixmap& ) const;
113 void loadLanguage( const QString& = QString::null, const QString& = QString::null );
115 void raiseTranslators( const QString& );
116 void removeTranslators( const QString& );
117 void loadTranslator( const QString&, const QString& );
119 QString path( const QString&, const QString&, const QString& ) const;
124 QStringList sections() const;
125 QStringList parameters( const QString& ) const;
130 void setDirList( const QStringList& );
132 virtual QString userFileName( const QString& ) const;
133 virtual QString globalFileName( const QString& ) const;
136 void initialize( const bool = true ) const;
137 QString substMacro( const QString&, const QMap<QChar, QString>& ) const;
140 typedef QPtrList<Resources> ResList;
141 typedef QPtrList<Format> FormatList;
142 typedef QMap<QString, QString> OptionsMap;
143 typedef QPtrListIterator<Resources> ResListIterator;
144 typedef QPtrListIterator<Format> FormatListIterator;
146 typedef QPtrList<QTranslator> TransList;
147 typedef QMap<QString, TransList> TransListMap;
148 typedef QPtrListIterator<QTranslator> TransListIterator;
152 QStringList myDirList;
153 FormatList myFormats;
154 OptionsMap myOptions;
156 TransListMap myTranslator;
157 QString myCurSection;
158 QPixmap myDefaultPix;
161 class QTX_EXPORT QtxResourceMgr::Format
164 Format( const QString& );
167 QString format() const;
169 QStringList options() const;
170 QString option( const QString& ) const;
171 void setOption( const QString&, const QString& );
173 bool load( Resources* );
174 bool save( Resources* );
177 virtual bool load( const QString&, QMap<QString, Section>& ) = 0;
178 virtual bool save( const QString&, const QMap<QString, Section>& ) = 0;
182 QMap<QString, QString> myOpt;
185 class QtxResourceMgr::Resources
188 Resources( const QString& );
189 virtual ~Resources();
191 QString file() const;
192 void setFile( const QString& );
194 QString value( const QString&, const QString&, const bool ) const;
195 void setValue( const QString&, const QString&, const QString& );
197 bool hasSection( const QString& ) const;
198 bool hasValue( const QString&, const QString& ) const;
200 void removeSection( const QString& );
201 void removeValue( const QString&, const QString& );
203 QPixmap loadPixmap( const QString&, const QString&, const QString& ) const;
204 QTranslator* loadTranslator( const QString&, const QString&, const QString& ) const;
206 QString environmentVariable( const QString&, int&, int& ) const;
207 QString makeSubstitution( const QString&, const QString&, const QString& ) const;
211 QStringList sections() const;
212 QStringList parameters( const QString& ) const;
214 QString path( const QString&, const QString&, const QString& ) const;
217 Section& section( const QString& );
218 const Section& section( const QString& ) const;
220 QString fileName( const QString&, const QString&, const QString& ) const;
223 QMap<QString, Section> mySections;
226 friend class QtxResourceMgr::Format;