1 // File: QtxResourceEditor.h
3 // Author: Sergey TELKOV
6 #ifndef QTXPREFERENCESEDITOR_H
7 #define QTXPREFERENCESEDITOR_H
10 #pragma warning( disable:4251 )
15 #include "QtxResourceMgr.h"
21 #include <qstringlist.h>
24 Class: QtxResourceEditor
28 class QTX_EXPORT QtxResourceEditor
37 enum { Space, Bool, Color, String, List, RealSpin, IntegerSpin, RealEdit, IntegerEdit };
40 QtxResourceEditor( QtxResourceMgr* );
41 virtual ~QtxResourceEditor();
43 int Add( const QString&, const QString&, const QString&,
44 const QString&, const QString&, const int, const QString& );
46 void SetList( const int, const QValueList<int>&, const QStringList& );
47 void SetRange( const int, const double, const double, const double = 3, const double = -1 );
48 bool IsExist( const int, QString&, QString&, QString& ) const;
50 void SetColumns( const QString&, const QString&, const QString&, const int );
52 void SetTitle( const QString&, const QString& );
53 void SetTitle( const QString&, const QString&, const QString& );
54 void SetTitle( const QString&, const QString&, const QString&, const QString& );
59 static int GenerateId();
61 virtual void Update();
63 QtxResourceMgr* resMgr() const;
66 typedef QPtrList<Category> CategoryList;
69 virtual Category* createCategory( const QString& ) = 0;
70 Category* getCategory( const QString& ) const;
71 const CategoryList& categories() const;
73 //typedef QPtrList<QtxResourceMgr> ResMgrList;
76 QtxResourceMgr* myResMgr;
77 CategoryList myCategories;
81 Class: QtxResourceEditor::Item
82 Descr: Class for incapsulation of one preference item
85 class QtxResourceEditor::Item
88 Item( QtxResourceEditor* );
91 QString Get( QString&, int&, QString& ) const;
92 virtual void Set( const QString&, const QString&, const int, const QString& );
93 virtual void Update();
98 virtual void SetList( const QValueList<int>&, const QStringList& );
99 virtual void SetRange( const double, const double, const double = 3, const double = -1 );
101 virtual void Store() = 0;
102 virtual void Retrieve() = 0;
104 bool GetInteger( const QString&, const QString&, int& ) const;
105 bool GetBoolean( const QString&, const QString&, bool& ) const;
106 bool GetDouble( const QString&, const QString&, double& ) const;
107 bool GetString( const QString&, const QString&, QString& ) const;
108 bool GetColor( const QString&, const QString&, QColor& ) const;
109 void SetInteger( const QString&, const QString&, const int );
110 void SetBoolean( const QString&, const QString&, const bool );
111 void SetDouble( const QString&, const QString&, const double );
112 void SetString( const QString&, const QString&, const QString& );
113 void SetColor( const QString&, const QString&, const QColor& );
116 QtxResourceMgr* resMgr() const;
120 QString myName, myLabel, mySection;
121 QtxResourceEditor* myEditor;
125 Class: QtxResourceEditor::Group
126 Descr: Class for incapsulation of one group of preferences (container of items)
129 class QtxResourceEditor::Group
132 Group( const QString& );
135 QString GetName() const;
136 virtual void SetName( const QString& );
138 virtual void SetColumns( const int );
139 virtual void SetTitle( const QString& );
140 virtual void Update();
142 int Add( const QString&, const QString&, const int, const QString& );
144 void SetList( const int, const QValueList<int>&, const QStringList& );
145 void SetRange( const int, const double, const double, const double = 3, const double = -1 );
147 bool IsExist( const int ) const;
153 virtual Item* createItem( const int, const QString& = QString::null ) = 0;
154 Item* getItem( const int ) const;
158 QPtrList<Item> myItems;
162 Class: QtxResourceEditor::Tab
163 Descr: Class for incapsulation of one set of preferences (container of groups)
166 class QtxResourceEditor::Tab
169 Tab( const QString& );
172 QString GetName() const;
173 int Add( const QString&, const QString&,
174 const QString&, const int, const QString& );
176 virtual void SetTitle( const QString& );
177 void SetTitle( const QString&, const QString& );
179 void SetColumns( const QString&, const int );
181 void SetList( const int, const QValueList<int>&, const QStringList& );
182 void SetRange( const int, const double, const double, const double = 3, const double = -1 );
184 bool IsExist( const int, QString& ) const;
189 virtual void Update();
192 virtual Group* createGroup( const QString& ) = 0;
193 Group* getGroup( const QString& ) const;
197 QPtrList<Group> myGroups;
201 Class: QtxResourceEditor::Category
202 Descr: Class for incapsulation of one set of tabs
205 class QtxResourceEditor::Category
208 Category( const QString& );
211 QString GetName() const;
212 int Add( const QString&, const QString&, const QString&,
213 const QString&, const int, const QString& );
215 virtual void SetTitle( const QString& );
216 void SetTitle( const QString&, const QString& );
217 void SetTitle( const QString&, const QString&, const QString& );
219 void SetColumns( const QString&, const QString&, const int );
221 void SetList( const int, const QValueList<int>&, const QStringList& );
222 void SetRange( const int, const double, const double, const double = 3, const double = -1 );
224 bool IsExist( const int, QString&, QString& ) const;
229 virtual void Update();
232 virtual Tab* createTab( const QString& ) = 0;
233 Tab* getTab( const QString& ) const;
237 QPtrList<Tab> myTabs;
241 #pragma warning( default:4251 )