]> SALOME platform Git repositories - modules/gui.git/blob - src/Qtx/QtxListResourceEdit.h
Salome HOME
Base class for resource editor and one completed implementation.
[modules/gui.git] / src / Qtx / QtxListResourceEdit.h
1 // File:      QtxListResourceEdit.h
2 // Author:    Sergey TELKOV
3
4 #ifndef QTXLISTRESOURCEEDIT_H
5 #define QTXLISTRESOURCEEDIT_H
6
7 #include "QtxResourceEdit.h"
8
9 #include <qmap.h>
10 #include <qhbox.h>
11 #include <qframe.h>
12 #include <qgroupbox.h>
13
14 class QLabel;
15 class QListBox;
16 class QLineEdit;
17 class QCheckBox;
18 class QComboBox;
19 class QTabWidget;
20 class QWidgetStack;
21
22 class QtxIntSpinBox;
23 class QtxDblSpinBox;
24
25 /*
26   Class: QtxListResourceEdit
27   Descr: GUI implementation of QtxResourceEdit - manager of resources
28 */
29
30 class QTX_EXPORT QtxListResourceEdit : public QFrame, public QtxResourceEdit
31 {
32   Q_OBJECT
33
34 public:
35   class Tab;
36   class Group;
37   class Category;
38   class PrefItem;
39
40   class Spacer;
41   class ListItem;
42   class ColorItem;
43   class StateItem;
44   class StringItem;
45   class DoubleSpinItem;
46   class DoubleEditItem;
47   class IntegerSpinItem;
48   class IntegerEditItem;
49
50 public:
51   QtxListResourceEdit( QtxResourceMgr*, QWidget* = 0 );
52   virtual ~QtxListResourceEdit();
53
54 private slots:
55   void          onSelectionChanged();
56
57 protected:
58   virtual Item* createItem( const QString&, const int );
59
60 private:
61   void          updateState();
62
63 private:
64   QListBox*     myList;
65   QWidgetStack* myStack;
66 };
67
68 /*
69   Class: QtxListResourceEdit::Category
70   Descr: GUI implementation of 'Category' frame
71 */
72
73 class QtxListResourceEdit::Category : public QFrame, public Item
74 {
75 public:
76   Category( QtxListResourceEdit*, QWidget* = 0 );
77   virtual ~Category();
78
79   virtual int      type() const;
80   virtual void     store();
81   virtual void     retrieve();
82
83   virtual QVariant property( const QString& ) const;
84   virtual void     setProperty( const QString&, const QVariant& );
85
86 protected:
87   virtual Item*    createItem( const QString&, const int );
88
89 private:
90   void             updateState();
91
92 private:
93   QLabel*          myInfo;
94   QTabWidget*      myTabs;
95 };
96
97 /*
98   Class: QtxListResourceEdit::Tab
99   Descr: GUI implementation of resources tab.
100 */
101
102 class QtxListResourceEdit::Tab : public QFrame, public Item
103 {
104 public:
105   Tab( QtxResourceEdit*, Item*, QWidget* = 0 );
106   virtual ~Tab();
107
108   virtual int   type() const;
109   virtual void  store();
110   virtual void  retrieve();
111
112 public:
113   virtual void  polish();
114
115 protected:
116   virtual Item* createItem( const QString&, const int );
117
118 private:
119   void          adjustLabels();
120
121 private:
122   QGroupBox*    myMainFrame;
123 };
124
125 /*
126   Class: QtxListResourceEdit::Group
127   Descr: GUI implementation of resources group.
128 */
129
130 class QtxListResourceEdit::Group : public QGroupBox, public Item
131 {
132 public:
133   Group( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
134   virtual ~Group();
135
136   virtual int      type() const;
137   virtual void     store();
138   virtual void     retrieve();
139
140   virtual QVariant property( const QString& ) const;
141   virtual void     setProperty( const QString&, const QVariant& );
142
143   virtual void     setTitle( const QString& );
144
145 protected:
146   virtual Item*    createItem( const QString&, const int );
147 };
148
149 /*
150   Class: QtxListResourceEdit::PrefItem
151   Descr: Base class for preferences items.
152 */
153
154 class QtxListResourceEdit::PrefItem : public QHBox, public Item
155 {
156 public:
157   PrefItem( const int, QtxResourceEdit*, Item* = 0, QWidget* = 0 );
158   virtual ~PrefItem();
159
160   virtual int   type() const;
161
162 protected:
163   virtual Item* createItem( const QString&, const int );
164
165 private:
166   int           myType;
167 };
168
169 /*
170   Class: QtxListResourceEdit::Spacer
171   Descr: GUI implementation of resources spacer.
172 */
173
174 class QtxListResourceEdit::Spacer : public PrefItem
175 {
176 public:
177   Spacer( QtxResourceEdit*, Item*, QWidget* = 0 );
178   virtual ~Spacer();
179
180   virtual void store();
181   virtual void retrieve();
182 };
183
184 /*
185   Class: QtxListResourceEdit::ListItem
186   Descr: GUI implementation of resources list item.
187 */
188
189 class QtxListResourceEdit::ListItem : public PrefItem
190 {
191 public:
192   ListItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
193   virtual ~ListItem();
194
195   virtual void     store();
196   virtual void     retrieve();
197
198   virtual QVariant property( const QString& ) const;
199   virtual void     setProperty( const QString&, const QVariant& );
200
201 private:
202   void             setStrings( const QVariant& );
203   void             setIndexes( const QVariant& );
204
205   void             setStrings( const QStringList& );
206   void             setIndexes( const QValueList<int>& );
207
208 private:
209   QComboBox*       myList;
210   QMap<int, int>   myIndex;
211 };
212
213 /*
214   Class: QtxListResourceEdit::StateItem
215   Descr: GUI implementation of resources bool item.
216 */
217
218 class QtxListResourceEdit::StateItem : public PrefItem
219 {
220 public:
221   StateItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
222   virtual ~StateItem();
223
224   virtual void     store();
225   virtual void     retrieve();
226
227 private:
228   QCheckBox*       myState;
229 };
230
231 /*
232   Class: QtxListResourceEdit::StringItem
233   Descr: GUI implementation of resources string item.
234 */
235
236 class QtxListResourceEdit::StringItem : public PrefItem
237 {
238 public:
239   StringItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
240   virtual ~StringItem();
241
242   virtual void     store();
243   virtual void     retrieve();
244
245 private:
246   QLineEdit*       myString;
247 };
248
249 /*
250   Class: QtxListResourceEdit::IntegerEditItem
251   Descr: GUI implementation of resources integer item.
252 */
253
254 class QtxListResourceEdit::IntegerEditItem : public PrefItem
255 {
256 public:
257   IntegerEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
258   virtual ~IntegerEditItem();
259
260   virtual void     store();
261   virtual void     retrieve();
262
263 private:
264   QLineEdit*       myInteger;
265 };
266
267 /*
268   Class: QtxListResourceEdit::IntegerSpinItem
269   Descr: GUI implementation of resources integer item.
270 */
271
272 class QtxListResourceEdit::IntegerSpinItem : public PrefItem
273 {
274 public:
275   IntegerSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
276   virtual ~IntegerSpinItem();
277
278   virtual void     store();
279   virtual void     retrieve();
280
281   virtual QVariant property( const QString& ) const;
282   virtual void     setProperty( const QString&, const QVariant& );
283
284 private:
285   QtxIntSpinBox*  myInteger;
286 };
287
288 /*
289   Class: QtxListResourceEdit::DoubleEditItem
290   Descr: GUI implementation of resources double item.
291 */
292
293 class QtxListResourceEdit::DoubleEditItem : public PrefItem
294 {
295 public:
296   DoubleEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
297   virtual ~DoubleEditItem();
298
299   virtual void     store();
300   virtual void     retrieve();
301
302 private:
303   QLineEdit*       myDouble;
304 };
305
306 /*
307   Class: QtxListResourceEdit::DoubleSpinItem
308   Descr: GUI implementation of resources double item.
309 */
310
311 class QtxListResourceEdit::DoubleSpinItem : public PrefItem
312 {
313 public:
314   DoubleSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
315   virtual ~DoubleSpinItem();
316
317   virtual void     store();
318   virtual void     retrieve();
319
320   virtual QVariant property( const QString& ) const;
321   virtual void     setProperty( const QString&, const QVariant& );
322
323 private:
324   QtxDblSpinBox*   myDouble;
325 };
326
327 /*
328   Class: QtxListResourceEdit::ColorItem
329   Descr: GUI implementation of resources color item.
330 */
331
332 class QtxListResourceEdit::ColorItem : public PrefItem
333 {
334 public:
335   ColorItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
336   virtual ~ColorItem();
337
338   virtual void     store();
339   virtual void     retrieve();
340
341 private:
342   QWidget*         myColor;
343 };
344
345 #endif