1 // Copyright (C) 2005 OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License.
8 // This library is distributed in the hope that it will be useful
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 // File: QtxListResourceEdit.h
20 // Author: Sergey TELKOV
22 #ifndef QTXLISTRESOURCEEDIT_H
23 #define QTXLISTRESOURCEEDIT_H
25 #include "QtxResourceEdit.h"
30 #include <qgroupbox.h>
31 #include <qvalidator.h>
44 class QtxDirListEditor;
47 \class QtxListResourceEdit
48 GUI implementation of QtxResourceEdit - manager of resources
51 class QTX_EXPORT QtxListResourceEdit : public QFrame, public QtxResourceEdit
68 class IntegerSpinItem;
69 class IntegerEditItem;
74 enum { Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer, GroupBox, Font, DirList, File, User };
77 QtxListResourceEdit( QtxResourceMgr*, QWidget* = 0 );
78 virtual ~QtxListResourceEdit();
80 virtual void setItemProperty( const int, const QString&, const QVariant& );
83 void resourceChanged( int );
84 void resourceChanged( QString&, QString& );
85 void resourcesChanged( const QMap<int, QString>& );
88 void onSelectionChanged();
91 virtual void itemAdded( Item* );
92 virtual Item* createItem( const QString&, const int );
93 virtual void changedResources( const QMap<Item*, QString>& );
101 QWidgetStack* myStack;
105 \class QtxListResourceEdit::Category
106 GUI implementation of 'Category' frame
109 class QtxListResourceEdit::Category : public QFrame, public Item
112 Category( QtxListResourceEdit*, QWidget* = 0 );
115 virtual bool isEmpty() const;
117 virtual int type() const;
118 virtual void store();
119 virtual void retrieve();
121 virtual QVariant property( const QString& ) const;
122 virtual void setProperty( const QString&, const QVariant& );
125 virtual Item* createItem( const QString&, const int );
136 \class QtxListResourceEdit::Tab
137 GUI implementation of resources tab.
140 class QtxListResourceEdit::Tab : public QFrame, public Item
143 Tab( QtxResourceEdit*, Item*, QWidget* = 0 );
146 virtual int type() const;
147 virtual void store();
148 virtual void retrieve();
151 virtual void polish();
154 virtual Item* createItem( const QString&, const int );
160 QWidget* myMainFrame;
164 \class QtxListResourceEdit::Group
165 GUI implementation of resources group.
168 class QtxListResourceEdit::Group : public QGroupBox, public Item
171 Group( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
174 virtual int type() const;
175 virtual void store();
176 virtual void retrieve();
178 virtual QVariant property( const QString& ) const;
179 virtual void setProperty( const QString&, const QVariant& );
181 virtual void setTitle( const QString& );
184 virtual Item* createItem( const QString&, const int );
188 \class QtxListResourceEdit::PrefItem
189 Base class for preferences items.
192 class QtxListResourceEdit::PrefItem : public QHBox, public Item
195 PrefItem( const int, QtxResourceEdit*, Item* = 0, QWidget* = 0 );
198 virtual int type() const;
201 virtual Item* createItem( const QString&, const int );
208 \class QtxListResourceEdit::Spacer
209 GUI implementation of resources spacer.
212 class QtxListResourceEdit::Spacer : public PrefItem
215 Spacer( QtxResourceEdit*, Item*, QWidget* = 0 );
218 virtual void store();
219 virtual void retrieve();
223 \class QtxListResourceEdit::SelectItem
224 GUI implementation of resources selector item.
227 class QtxListResourceEdit::SelectItem : public PrefItem
230 SelectItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
231 virtual ~SelectItem();
233 virtual void store();
234 virtual void retrieve();
236 virtual QVariant property( const QString& ) const;
237 virtual void setProperty( const QString&, const QVariant& );
240 void setStrings( const QVariant& );
241 void setIndexes( const QVariant& );
243 void setStrings( const QStringList& );
244 void setIndexes( const QValueList<int>& );
248 QMap<int, int> myIndex;
252 \class QtxListResourceEdit::StateItem
253 GUI implementation of resources bool item.
255 class QtxListResourceEdit::StateItem : public PrefItem
258 StateItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
259 virtual ~StateItem();
261 virtual void store();
262 virtual void retrieve();
269 \class QtxListResourceEdit::StringItem
270 GUI implementation of resources string item.
273 class QtxListResourceEdit::StringItem : public PrefItem
276 StringItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
277 virtual ~StringItem();
279 virtual void store();
280 virtual void retrieve();
287 \class QtxListResourceEdit::IntegerEditItem
288 GUI implementation of resources integer item.
291 class QtxListResourceEdit::IntegerEditItem : public PrefItem
294 IntegerEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
295 virtual ~IntegerEditItem();
297 virtual void store();
298 virtual void retrieve();
301 QLineEdit* myInteger;
305 \class QtxListResourceEdit::IntegerSpinItem
306 GUI implementation of resources integer item.
309 class QtxListResourceEdit::IntegerSpinItem : public PrefItem
312 IntegerSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
313 virtual ~IntegerSpinItem();
315 virtual void store();
316 virtual void retrieve();
318 virtual QVariant property( const QString& ) const;
319 virtual void setProperty( const QString&, const QVariant& );
322 QtxIntSpinBox* myInteger;
326 \class QtxListResourceEdit::DoubleEditItem
327 GUI implementation of resources double item.
330 class QtxListResourceEdit::DoubleEditItem : public PrefItem
333 DoubleEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
334 virtual ~DoubleEditItem();
336 virtual void store();
337 virtual void retrieve();
344 \class QtxListResourceEdit::DoubleSpinItem
345 GUI implementation of resources double item.
348 class QtxListResourceEdit::DoubleSpinItem : public PrefItem
351 DoubleSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
352 virtual ~DoubleSpinItem();
354 virtual void store();
355 virtual void retrieve();
357 virtual QVariant property( const QString& ) const;
358 virtual void setProperty( const QString&, const QVariant& );
361 QtxDblSpinBox* myDouble;
365 \class QtxListResourceEdit::ColorItem
366 GUI implementation of resources color item.
369 class QtxListResourceEdit::ColorItem : public PrefItem
372 ColorItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
373 virtual ~ColorItem();
375 virtual void store();
376 virtual void retrieve();
386 \class QtxListResourceEdit::FontItem
387 GUI implementation of resources font item.
389 class QtxListResourceEdit::FontItem : public PrefItem
404 All = Family | Size | UserSize | Bold | Italic | Underline | Preview
409 FontItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
412 virtual void store();
413 virtual void retrieve();
415 virtual QVariant property( const QString& ) const;
416 virtual void setProperty( const QString&, const QVariant& );
419 void onActivateFamily( int );
423 void setFamily( const QString& );
424 QString family() const;
425 void setSize( const int );
427 void setParams( const bool, const bool, const bool );
428 void params( bool&, bool&, bool& );
429 void internalUpdate();
434 QtxComboBox *myFamilies, *mySizes;
435 QCheckBox *myBold, *myItalic, *myUnderline;
436 QToolButton *myPreview;
437 QMap<QString, QVariant> myProperties;
442 \class QtxListResourceEdit
443 \brief GUI implementation of resources directory list item.
445 class QtxListResourceEdit::DirListItem : public PrefItem
454 DirListItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
458 virtual ~DirListItem();
461 * \brief Stores the data
463 virtual void store();
466 * \brief Retrieves the data
468 virtual void retrieve();
471 QtxDirListEditor* myDirListEditor; //!< The widget wich implements in GUI the list of directories
479 \class QtxListResourceEdit::FontItem
480 GUI implementation of resources font item.
483 class QtxListResourceEdit::FileItem : public PrefItem
489 \class QtxListResourceEdit::FileItem::FileValidator
490 custom file validator: checks files on some rights
493 class FileValidator : public QValidator
496 FileValidator( FileItem*, QObject* );
499 virtual QValidator::State validate( QString&, int& ) const;
506 FileItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
509 virtual void store();
510 virtual void retrieve();
512 virtual QVariant property( const QString& ) const;
513 virtual void setProperty( const QString&, const QVariant& );
515 virtual bool isFileCorrect( const QString& ) const;
519 void onFileSelected( const QString& );
524 QStringList myFilter;
527 QToolButton* myOpenFile;
528 QFileDialog* myFileDlg;