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/
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 Descr: 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 Descr: 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 Descr: 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 Descr: 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 Descr: 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 Descr: 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 Descr: 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 Descr: GUI implementation of resources bool item.
256 class QtxListResourceEdit::StateItem : public PrefItem
259 StateItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
260 virtual ~StateItem();
262 virtual void store();
263 virtual void retrieve();
270 Class: QtxListResourceEdit::StringItem
271 Descr: GUI implementation of resources string item.
274 class QtxListResourceEdit::StringItem : public PrefItem
277 StringItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
278 virtual ~StringItem();
280 virtual void store();
281 virtual void retrieve();
288 Class: QtxListResourceEdit::IntegerEditItem
289 Descr: GUI implementation of resources integer item.
292 class QtxListResourceEdit::IntegerEditItem : public PrefItem
295 IntegerEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
296 virtual ~IntegerEditItem();
298 virtual void store();
299 virtual void retrieve();
302 QLineEdit* myInteger;
306 Class: QtxListResourceEdit::IntegerSpinItem
307 Descr: GUI implementation of resources integer item.
310 class QtxListResourceEdit::IntegerSpinItem : public PrefItem
313 IntegerSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
314 virtual ~IntegerSpinItem();
316 virtual void store();
317 virtual void retrieve();
319 virtual QVariant property( const QString& ) const;
320 virtual void setProperty( const QString&, const QVariant& );
323 QtxIntSpinBox* myInteger;
327 Class: QtxListResourceEdit::DoubleEditItem
328 Descr: GUI implementation of resources double item.
331 class QtxListResourceEdit::DoubleEditItem : public PrefItem
334 DoubleEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
335 virtual ~DoubleEditItem();
337 virtual void store();
338 virtual void retrieve();
345 Class: QtxListResourceEdit::DoubleSpinItem
346 Descr: GUI implementation of resources double item.
349 class QtxListResourceEdit::DoubleSpinItem : public PrefItem
352 DoubleSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
353 virtual ~DoubleSpinItem();
355 virtual void store();
356 virtual void retrieve();
358 virtual QVariant property( const QString& ) const;
359 virtual void setProperty( const QString&, const QVariant& );
362 QtxDblSpinBox* myDouble;
366 Class: QtxListResourceEdit::ColorItem
367 Descr: GUI implementation of resources color item.
370 class QtxListResourceEdit::ColorItem : public PrefItem
373 ColorItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
374 virtual ~ColorItem();
376 virtual void store();
377 virtual void retrieve();
384 Class: QtxListResourceEdit::FontItem
385 Descr: GUI implementation of resources font item.
391 class QtxListResourceEdit::FontItem : public PrefItem
406 All = Family | Size | UserSize | Bold | Italic | Underline | Preview
411 FontItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
414 virtual void store();
415 virtual void retrieve();
417 virtual QVariant property( const QString& ) const;
418 virtual void setProperty( const QString&, const QVariant& );
421 void onActivateFamily( int );
425 void setFamily( const QString& );
426 QString family() const;
427 void setSize( const int );
429 void setParams( const bool, const bool, const bool );
430 void params( bool&, bool&, bool& );
431 void internalUpdate();
436 QtxComboBox *myFamilies, *mySizes;
437 QCheckBox *myBold, *myItalic, *myUnderline;
438 QToolButton *myPreview;
439 QMap<QString, QVariant> myProperties;
444 * \brief GUI implementation of resources directory list item.
448 class QtxListResourceEdit::DirListItem : public PrefItem
457 DirListItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
461 virtual ~DirListItem();
464 * \brief Stores the data
466 virtual void store();
469 * \brief Retrieves the data
471 virtual void retrieve();
474 QtxDirListEditor* myDirListEditor; //!< The widget wich implements in GUI the list of directories
478 Class: QtxListResourceEdit::FontItem
479 Descr: GUI implementation of resources font item.
486 class QtxListResourceEdit::FileItem : public PrefItem
491 class FileValidator : public QValidator
494 FileValidator( FileItem*, QObject* );
497 virtual QValidator::State validate( QString&, int& ) const;
504 FileItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
507 virtual void store();
508 virtual void retrieve();
510 virtual QVariant property( const QString& ) const;
511 virtual void setProperty( const QString&, const QVariant& );
513 virtual bool isFileCorrect( const QString& ) const;
517 void onFileSelected( const QString& );
521 QStringList myFilter;
524 QToolButton* myOpenFile;
525 QFileDialog* myFileDlg;