]> SALOME platform Git repositories - modules/gui.git/blob - src/Qtx/QtxListResourceEdit.h
Salome HOME
New item (FontItem), allowing to show information about font setting and to select...
[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   class FontItem;
50
51   enum { Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer, Font, User };
52
53 public:
54   QtxListResourceEdit( QtxResourceMgr*, QWidget* = 0 );
55   virtual ~QtxListResourceEdit();
56
57 signals:
58   void          resourceChanged( int );
59   void          resourceChanged( QString&, QString& );
60   void          resourcesChanged( const QMap<int, QString>& );
61
62 private slots:
63   void          onSelectionChanged();
64
65 protected:
66   virtual Item* createItem( const QString&, const int );
67   virtual void  changedResources( const QMap<Item*, QString>& );
68
69 private:
70   void          updateState();
71
72 private:
73   QListBox*     myList;
74   QWidgetStack* myStack;
75 };
76
77 /*
78   Class: QtxListResourceEdit::Category
79   Descr: GUI implementation of 'Category' frame
80 */
81
82 class QtxListResourceEdit::Category : public QFrame, public Item
83 {
84 public:
85   Category( QtxListResourceEdit*, QWidget* = 0 );
86   virtual ~Category();
87
88   virtual int      type() const;
89   virtual void     store();
90   virtual void     retrieve();
91
92   virtual QVariant property( const QString& ) const;
93   virtual void     setProperty( const QString&, const QVariant& );
94
95 protected:
96   virtual Item*    createItem( const QString&, const int );
97
98 private:
99   void             updateState();
100
101 private:
102   QLabel*          myInfo;
103   QTabWidget*      myTabs;
104 };
105
106 /*
107   Class: QtxListResourceEdit::Tab
108   Descr: GUI implementation of resources tab.
109 */
110
111 class QtxListResourceEdit::Tab : public QFrame, public Item
112 {
113 public:
114   Tab( QtxResourceEdit*, Item*, QWidget* = 0 );
115   virtual ~Tab();
116
117   virtual int   type() const;
118   virtual void  store();
119   virtual void  retrieve();
120
121 public:
122   virtual void  polish();
123
124 protected:
125   virtual Item* createItem( const QString&, const int );
126
127 private:
128   void          adjustLabels();
129
130 private:
131   QWidget*      myMainFrame;
132 };
133
134 /*
135   Class: QtxListResourceEdit::Group
136   Descr: GUI implementation of resources group.
137 */
138
139 class QtxListResourceEdit::Group : public QGroupBox, public Item
140 {
141 public:
142   Group( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
143   virtual ~Group();
144
145   virtual int      type() const;
146   virtual void     store();
147   virtual void     retrieve();
148
149   virtual QVariant property( const QString& ) const;
150   virtual void     setProperty( const QString&, const QVariant& );
151
152   virtual void     setTitle( const QString& );
153
154 protected:
155   virtual Item*    createItem( const QString&, const int );
156 };
157
158 /*
159   Class: QtxListResourceEdit::PrefItem
160   Descr: Base class for preferences items.
161 */
162
163 class QtxListResourceEdit::PrefItem : public QHBox, public Item
164 {
165 public:
166   PrefItem( const int, QtxResourceEdit*, Item* = 0, QWidget* = 0 );
167   virtual ~PrefItem();
168
169   virtual int   type() const;
170
171 protected:
172   virtual Item* createItem( const QString&, const int );
173
174 private:
175   int           myType;
176 };
177
178 /*
179   Class: QtxListResourceEdit::Spacer
180   Descr: GUI implementation of resources spacer.
181 */
182
183 class QtxListResourceEdit::Spacer : public PrefItem
184 {
185 public:
186   Spacer( QtxResourceEdit*, Item*, QWidget* = 0 );
187   virtual ~Spacer();
188
189   virtual void store();
190   virtual void retrieve();
191 };
192
193 /*
194   Class: QtxListResourceEdit::ListItem
195   Descr: GUI implementation of resources list item.
196 */
197
198 class QtxListResourceEdit::ListItem : public PrefItem
199 {
200 public:
201   ListItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
202   virtual ~ListItem();
203
204   virtual void     store();
205   virtual void     retrieve();
206
207   virtual QVariant property( const QString& ) const;
208   virtual void     setProperty( const QString&, const QVariant& );
209
210 private:
211   void             setStrings( const QVariant& );
212   void             setIndexes( const QVariant& );
213
214   void             setStrings( const QStringList& );
215   void             setIndexes( const QValueList<int>& );
216
217 private:
218   QComboBox*       myList;
219   QMap<int, int>   myIndex;
220 };
221
222 /*
223   Class: QtxListResourceEdit::StateItem
224   Descr: GUI implementation of resources bool item.
225 */
226
227 class QtxListResourceEdit::StateItem : public PrefItem
228 {
229 public:
230   StateItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
231   virtual ~StateItem();
232
233   virtual void     store();
234   virtual void     retrieve();
235
236 private:
237   QCheckBox*       myState;
238 };
239
240 /*
241   Class: QtxListResourceEdit::StringItem
242   Descr: GUI implementation of resources string item.
243 */
244
245 class QtxListResourceEdit::StringItem : public PrefItem
246 {
247 public:
248   StringItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
249   virtual ~StringItem();
250
251   virtual void     store();
252   virtual void     retrieve();
253
254 private:
255   QLineEdit*       myString;
256 };
257
258 /*
259   Class: QtxListResourceEdit::IntegerEditItem
260   Descr: GUI implementation of resources integer item.
261 */
262
263 class QtxListResourceEdit::IntegerEditItem : public PrefItem
264 {
265 public:
266   IntegerEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
267   virtual ~IntegerEditItem();
268
269   virtual void     store();
270   virtual void     retrieve();
271
272 private:
273   QLineEdit*       myInteger;
274 };
275
276 /*
277   Class: QtxListResourceEdit::IntegerSpinItem
278   Descr: GUI implementation of resources integer item.
279 */
280
281 class QtxListResourceEdit::IntegerSpinItem : public PrefItem
282 {
283 public:
284   IntegerSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
285   virtual ~IntegerSpinItem();
286
287   virtual void     store();
288   virtual void     retrieve();
289
290   virtual QVariant property( const QString& ) const;
291   virtual void     setProperty( const QString&, const QVariant& );
292
293 private:
294   QtxIntSpinBox*  myInteger;
295 };
296
297 /*
298   Class: QtxListResourceEdit::DoubleEditItem
299   Descr: GUI implementation of resources double item.
300 */
301
302 class QtxListResourceEdit::DoubleEditItem : public PrefItem
303 {
304 public:
305   DoubleEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
306   virtual ~DoubleEditItem();
307
308   virtual void     store();
309   virtual void     retrieve();
310
311 private:
312   QLineEdit*       myDouble;
313 };
314
315 /*
316   Class: QtxListResourceEdit::DoubleSpinItem
317   Descr: GUI implementation of resources double item.
318 */
319
320 class QtxListResourceEdit::DoubleSpinItem : public PrefItem
321 {
322 public:
323   DoubleSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
324   virtual ~DoubleSpinItem();
325
326   virtual void     store();
327   virtual void     retrieve();
328
329   virtual QVariant property( const QString& ) const;
330   virtual void     setProperty( const QString&, const QVariant& );
331
332 private:
333   QtxDblSpinBox*   myDouble;
334 };
335
336 /*
337   Class: QtxListResourceEdit::ColorItem
338   Descr: GUI implementation of resources color item.
339 */
340
341 class QtxListResourceEdit::ColorItem : public PrefItem
342 {
343 public:
344   ColorItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
345   virtual ~ColorItem();
346
347   virtual void     store();
348   virtual void     retrieve();
349
350 private:
351   QWidget*         myColor;
352 };
353
354 /*
355   Class: QtxListResourceEdit::FontItem
356   Descr: GUI implementation of resources font item.
357 */
358
359 class QtxListResourceEdit::FontItem : public PrefItem
360 {
361   Q_OBJECT
362   
363 public:
364   FontItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
365   virtual ~FontItem();
366
367   virtual void     store();
368   virtual void     retrieve();
369
370 protected slots:
371   void onSelectFont();
372   
373 protected:
374   void buildFontPrs();
375
376 private:
377   QFont           myFont;
378   QLabel*         myFontPrs;
379 };
380
381 #endif