1 #ifndef QTX_RESOURCEMGR_H
2 #define QTX_RESOURCEMGR_H
8 #include <qstringlist.h>
9 #include <qtranslator.h>
14 #pragma warning( disable:4251 )
17 class QTX_EXPORT QtxResourceMgr
27 typedef QMap<QString, QString> Section;
30 QtxResourceMgr( const QString&, const QString& = QString::null );
31 virtual ~QtxResourceMgr();
33 QString appName() const;
34 QStringList dirList() const;
38 QString currentSection() const;
39 void setCurrentSection( const QString& );
41 bool value( const QString&, int& ) const;
42 bool value( const QString&, double& ) const;
43 bool value( const QString&, bool& ) const;
44 bool value( const QString&, QColor& ) const;
45 bool value( const QString&, QString&, const bool = true ) const;
47 bool value( const QString&, const QString&, int& ) const;
48 bool value( const QString&, const QString&, double& ) const;
49 bool value( const QString&, const QString&, bool& ) const;
50 bool value( const QString&, const QString&, QColor& ) const;
51 bool value( const QString&, const QString&, QString&, const bool = true ) const;
53 int integerValue( const QString&, const int = 0 ) const;
54 double doubleValue( const QString&, const double = 0 ) const;
55 bool booleanValue( const QString&, const bool = false ) const;
56 QColor colorValue( const QString&, const QColor& = QColor() ) const;
57 QString stringValue( const QString&, const char* = 0 ) const;
59 int integerValue( const QString&, const QString&, const int = 0 ) const;
60 double doubleValue( const QString&, const QString&, const double = 0 ) const;
61 bool booleanValue( const QString&, const QString&, const bool = false ) const;
62 QColor colorValue( const QString&, const QString&, const QColor& = QColor() ) const;
63 QString stringValue( const QString&, const QString&, const char* = 0 ) const;
65 bool hasSection( const QString& ) const;
66 bool hasValue( const QString& ) const;
67 bool hasValue( const QString&, const QString& ) const;
69 void setValue( const QString&, const int );
70 void setValue( const QString&, const double );
71 void setValue( const QString&, const bool );
72 void setValue( const QString&, const QColor& );
73 void setValue( const QString&, const QString& );
75 void setValue( const QString&, const QString&, const int );
76 void setValue( const QString&, const QString&, const double );
77 void setValue( const QString&, const QString&, const bool );
78 void setValue( const QString&, const QString&, const QColor& );
79 void setValue( const QString&, const QString&, const QString& );
81 void remove( const QString& );
82 void remove( const QString&, const QString& );
83 void removeSection( const QString& );
85 QString currentFormat() const;
86 void setCurrentFormat( const QString& );
88 Format* format( const QString& ) const;
89 void installFormat( Format* );
90 void removeFormat( Format* );
92 QStringList options() const;
93 QString option( const QString& ) const;
94 void setOption( const QString&, const QString& );
96 QString resSection() const;
97 QString langSection() const;
99 QPixmap loadPixmap( const QString&, const QString& ) const;
100 void loadLanguage( const QString& = QString::null, const QString& = QString::null );
102 void raiseTranslators( const QString& );
103 void removeTranslators( const QString& );
104 void loadTranslator( const QString&, const QString& );
106 QString path( const QString&, const QString&, const QString& ) const;
111 QStringList sections() const;
112 QStringList parameters( const QString& ) const;
117 void setDirList( const QStringList& );
119 virtual QString userFileName( const QString& ) const;
120 virtual QString globalFileName( const QString& ) const;
123 void initialize( const bool = true ) const;
124 QString substMacro( const QString&, const QMap<QChar, QString>& ) const;
127 typedef QPtrList<Resources> ResList;
128 typedef QPtrList<Format> FormatList;
129 typedef QMap<QString, QString> OptionsMap;
130 typedef QPtrListIterator<Resources> ResListIterator;
131 typedef QPtrListIterator<Format> FormatListIterator;
133 typedef QPtrList<QTranslator> TransList;
134 typedef QMap<QString, TransList> TransListMap;
135 typedef QPtrListIterator<QTranslator> TransListIterator;
139 QStringList myDirList;
140 FormatList myFormats;
141 OptionsMap myOptions;
143 TransListMap myTranslator;
144 QString myCurSection;
147 class QTX_EXPORT QtxResourceMgr::Format
150 Format( const QString& );
153 QString format() const;
155 QStringList options() const;
156 QString option( const QString& ) const;
157 void setOption( const QString&, const QString& );
159 bool load( Resources* );
160 bool save( Resources* );
163 virtual bool load( const QString&, QMap<QString, Section>& ) = 0;
164 virtual bool save( const QString&, const QMap<QString, Section>& ) = 0;
168 QMap<QString, QString> myOpt;
171 class QtxResourceMgr::Resources
174 Resources( const QString& );
175 virtual ~Resources();
177 QString file() const;
178 void setFile( const QString& );
180 QString value( const QString&, const QString&, const bool ) const;
181 void setValue( const QString&, const QString&, const QString& );
183 bool hasSection( const QString& ) const;
184 bool hasValue( const QString&, const QString& ) const;
186 void removeSection( const QString& );
187 void removeValue( const QString&, const QString& );
189 QPixmap loadPixmap( const QString&, const QString&, const QString& ) const;
190 QTranslator* loadTranslator( const QString&, const QString&, const QString& ) const;
192 QString environmentVariable( const QString&, int&, int& ) const;
193 QString makeSubstitution( const QString&, const QString&, const QString& ) const;
197 QStringList sections() const;
198 QStringList parameters( const QString& ) const;
200 QString path( const QString&, const QString&, const QString& ) const;
203 Section& section( const QString& );
204 const Section& section( const QString& ) const;
206 QString fileName( const QString&, const QString&, const QString& ) const;
209 QMap<QString, Section> mySections;
212 friend class QtxResourceMgr::Format;