1 // Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 // File: QtxPagePrefMgr.h
23 // Author: Sergey TELKOV
25 #ifndef QTXPAGEPREFMGR_H
26 #define QTXPAGEPREFMGR_H
28 #include "QtxPreferenceMgr.h"
30 #include "QtxPathEdit.h"
31 #include "QtxPathListEdit.h"
54 class QTX_EXPORT QtxPagePrefMgr : public QFrame, public QtxPreferenceMgr
59 QtxPagePrefMgr( QtxResourceMgr*, QWidget* = 0 );
60 virtual ~QtxPagePrefMgr();
62 virtual QSize sizeHint() const;
63 virtual QSize minimumSizeHint() const;
65 virtual void updateContents();
68 void resourceChanged( int );
69 void resourceChanged( QString&, QString& );
70 void resourcesChanged( const QMap<int, QString>& );
73 virtual void setVisible( bool );
76 virtual void itemAdded( QtxPreferenceItem* );
77 virtual void itemRemoved( QtxPreferenceItem* );
78 virtual void itemChanged( QtxPreferenceItem* );
80 virtual QVariant optionValue( const QString& ) const;
81 virtual void setOptionValue( const QString&, const QVariant& );
84 void initialize() const;
85 void initialize( QtxPreferenceItem* );
92 class QTX_EXPORT QtxPagePrefItem : public QtxPreferenceItem
97 QtxPagePrefItem( const QString&, QtxPreferenceItem* = 0,
98 const QString& = QString(), const QString& = QString() );
99 virtual ~QtxPagePrefItem();
101 QWidget* widget() const;
103 virtual void activate();
106 void setWidget( QWidget* );
108 virtual void itemAdded( QtxPreferenceItem* );
109 virtual void itemRemoved( QtxPreferenceItem* );
110 virtual void itemChanged( QtxPreferenceItem* );
112 void pageChildItems( QList<QtxPagePrefItem*>&, const bool = false ) const;
114 virtual void store();
115 virtual void retrieve();
117 virtual void widgetShown();
118 virtual void widgetHided();
120 virtual void ensureVisible( QtxPreferenceItem* );
123 virtual void contentChanged();
126 QPointer<QWidget> myWidget;
127 Listener* myListener;
130 class QTX_EXPORT QtxPageNamedPrefItem : public QtxPagePrefItem
133 QtxPageNamedPrefItem( const QString&, QtxPreferenceItem* = 0,
134 const QString& = QString(), const QString& = QString() );
135 virtual ~QtxPageNamedPrefItem();
137 virtual void setTitle( const QString& );
139 static void adjustLabels( QtxPagePrefItem* );
142 QLabel* label() const;
143 QWidget* control() const;
145 void setControl( QWidget* );
148 QPointer<QLabel> myLabel;
149 QPointer<QWidget> myControl;
152 class QTX_EXPORT QtxPagePrefListItem : public QObject, public QtxPagePrefItem
157 QtxPagePrefListItem( const QString&, QtxPreferenceItem* = 0,
158 const QString& = QString(), const QString& = QString() );
159 virtual ~QtxPagePrefListItem();
161 virtual void updateContents();
163 QString emptyInfo() const;
164 void setEmptyInfo( const QString& );
166 bool isFixedSize() const;
167 void setFixedSize( const bool );
170 void onItemSelectionChanged();
173 virtual QVariant optionValue( const QString& ) const;
174 virtual void setOptionValue( const QString&, const QVariant& );
175 virtual void ensureVisible( QtxPreferenceItem* );
177 virtual void widgetShown();
183 void updateVisible();
185 int selected() const;
186 QtxPagePrefItem* selectedItem() const;
187 void setSelected( const int );
192 QStackedWidget* myStack;
198 class QTX_EXPORT QtxPagePrefToolBoxItem : public QtxPagePrefItem
201 QtxPagePrefToolBoxItem( const QString&, QtxPreferenceItem* = 0,
202 const QString& = QString(), const QString& = QString() );
203 virtual ~QtxPagePrefToolBoxItem();
205 virtual void updateContents();
208 virtual void ensureVisible( QtxPreferenceItem* );
211 void updateToolBox();
217 class QTX_EXPORT QtxPagePrefTabsItem : public QtxPagePrefItem
220 QtxPagePrefTabsItem( const QString&, QtxPreferenceItem* = 0,
221 const QString& = QString(), const QString& = QString() );
222 virtual ~QtxPagePrefTabsItem();
224 virtual void updateContents();
226 int tabPosition() const;
227 void setTabPosition( const int );
229 int tabShape() const;
230 void setTabShape( const int );
232 QSize tabIconSize() const;
233 void setTabIconSize( const QSize& );
236 virtual QVariant optionValue( const QString& ) const;
237 virtual void setOptionValue( const QString&, const QVariant& );
238 virtual void ensureVisible( QtxPreferenceItem* );
247 class QTX_EXPORT QtxPagePrefFrameItem : public QtxPagePrefItem
250 QtxPagePrefFrameItem( const QString&, QtxPreferenceItem* = 0,
251 const QString& = QString(), const QString& = QString() );
252 virtual ~QtxPagePrefFrameItem();
254 virtual void updateContents();
256 bool stretch() const;
257 void setStretch( const bool );
260 void setMargin( const int );
263 void setSpacing( const int );
266 void setColumns( const int );
268 Qt::Orientation orientation() const;
269 void setOrientation( const Qt::Orientation );
272 virtual QVariant optionValue( const QString& ) const;
273 virtual void setOptionValue( const QString&, const QVariant& );
275 virtual void widgetShown();
284 class QTX_EXPORT QtxPagePrefGroupItem : public QtxPagePrefItem
287 QtxPagePrefGroupItem( const QString&, QtxPreferenceItem* = 0,
288 const QString& = QString(), const QString& = QString() );
289 QtxPagePrefGroupItem( const int, const QString&, QtxPreferenceItem* = 0,
290 const QString& = QString(), const QString& = QString() );
291 virtual ~QtxPagePrefGroupItem();
293 virtual void updateContents();
296 void setMargin( const int );
299 void setSpacing( const int );
302 void setColumns( const int );
304 Qt::Orientation orientation() const;
305 void setOrientation( const Qt::Orientation );
308 void setFlat( const bool );
310 virtual void setResource( const QString&, const QString& );
312 virtual void store();
313 virtual void retrieve();
315 QtxGridBox* gridBox() const;
318 virtual QVariant optionValue( const QString& ) const;
319 virtual void setOptionValue( const QString&, const QVariant& );
321 virtual void widgetShown();
329 QtxGroupBox* myGroup;
332 class QTX_EXPORT QtxPagePrefLabelItem : public QtxPagePrefItem
335 QtxPagePrefLabelItem( const QString&, QtxPreferenceItem* = 0 );
336 QtxPagePrefLabelItem( Qt::Alignment, const QString&, QtxPreferenceItem* = 0 );
337 virtual ~QtxPagePrefLabelItem();
339 virtual void setTitle( const QString& );
341 Qt::Alignment alignment() const;
342 void setAlignment( Qt::Alignment );
345 virtual QVariant optionValue( const QString& ) const;
346 virtual void setOptionValue( const QString&, const QVariant& );
349 QPointer<QLabel> myLabel;
352 class QTX_EXPORT QtxPagePrefSpaceItem : public QtxPagePrefItem
355 QtxPagePrefSpaceItem( QtxPreferenceItem* = 0 );
356 QtxPagePrefSpaceItem( Qt::Orientation, QtxPreferenceItem* = 0 );
357 QtxPagePrefSpaceItem( const int, const int, QtxPreferenceItem* = 0 );
358 virtual ~QtxPagePrefSpaceItem();
360 int size( Qt::Orientation ) const;
361 void setSize( Qt::Orientation, const int );
363 int stretch( Qt::Orientation ) const;
364 void setStretch( Qt::Orientation, const int );
367 virtual QVariant optionValue( const QString& ) const;
368 virtual void setOptionValue( const QString&, const QVariant& );
371 void initialize( const int, const int, const int, const int );
374 class QTX_EXPORT QtxPagePrefCheckItem : public QtxPagePrefItem
377 QtxPagePrefCheckItem( const QString&, QtxPreferenceItem* = 0,
378 const QString& = QString(), const QString& = QString() );
379 virtual ~QtxPagePrefCheckItem();
381 virtual void setTitle( const QString& );
383 virtual void store();
384 virtual void retrieve();
390 class QTX_EXPORT QtxPagePrefEditItem : public QtxPageNamedPrefItem
393 typedef enum { String, Integer, Double } InputType;
396 QtxPagePrefEditItem( const QString&, QtxPreferenceItem* = 0,
397 const QString& = QString(), const QString& = QString() );
398 QtxPagePrefEditItem( const int, const QString&, QtxPreferenceItem* = 0,
399 const QString& = QString(), const QString& = QString() );
400 virtual ~QtxPagePrefEditItem();
402 int inputType() const;
403 void setInputType( const int );
405 virtual void store();
406 virtual void retrieve();
409 virtual QVariant optionValue( const QString& ) const;
410 virtual void setOptionValue( const QString&, const QVariant& );
420 class QTX_EXPORT QtxPagePrefSelectItem : public QtxPageNamedPrefItem
423 typedef enum { NoInput, String, Integer, Double } InputType;
426 QtxPagePrefSelectItem( const QString&, QtxPreferenceItem* = 0,
427 const QString& = QString(), const QString& = QString() );
428 QtxPagePrefSelectItem( const int, const QString&, QtxPreferenceItem* = 0,
429 const QString& = QString(), const QString& = QString() );
430 virtual ~QtxPagePrefSelectItem();
432 int inputType() const;
433 void setInputType( const int );
435 QStringList strings() const;
436 QList<int> numbers() const;
438 void setStrings( const QStringList& );
439 void setNumbers( const QList<int>& );
441 virtual void store();
442 virtual void retrieve();
445 virtual QVariant optionValue( const QString& ) const;
446 virtual void setOptionValue( const QString&, const QVariant& );
449 void updateSelector();
450 void setStrings( const QVariant& );
451 void setNumbers( const QVariant& );
455 QtxComboBox* mySelector;
458 class QTX_EXPORT QtxPagePrefSpinItem : public QtxPageNamedPrefItem
461 typedef enum { Integer, Double } InputType;
464 QtxPagePrefSpinItem( const QString&, QtxPreferenceItem* = 0,
465 const QString& = QString(), const QString& = QString() );
466 QtxPagePrefSpinItem( const int, const QString&, QtxPreferenceItem* = 0,
467 const QString& = QString(), const QString& = QString() );
468 virtual ~QtxPagePrefSpinItem();
470 QVariant step() const;
471 QVariant minimum() const;
472 QVariant maximum() const;
474 QString prefix() const;
475 QString suffix() const;
476 QString specialValueText() const;
478 void setStep( const QVariant& );
479 void setMinimum( const QVariant& );
480 void setMaximum( const QVariant& );
482 void setPrefix( const QString& );
483 void setSuffix( const QString& );
484 void setSpecialValueText( const QString& );
486 int inputType() const;
487 void setInputType( const int );
489 virtual void store();
490 virtual void retrieve();
493 virtual QVariant optionValue( const QString& ) const;
494 virtual void setOptionValue( const QString&, const QVariant& );
497 void updateSpinBox();
503 class QTX_EXPORT QtxPagePrefTextItem : public QtxPageNamedPrefItem
506 QtxPagePrefTextItem( QtxPreferenceItem* = 0,
507 const QString& = QString(), const QString& = QString() );
508 QtxPagePrefTextItem( const QString&, QtxPreferenceItem* = 0,
509 const QString& = QString(), const QString& = QString() );
510 virtual ~QtxPagePrefTextItem();
512 virtual void store();
513 virtual void retrieve();
519 class QTX_EXPORT QtxPagePrefColorItem : public QtxPageNamedPrefItem
522 QtxPagePrefColorItem( const QString&, QtxPreferenceItem* = 0,
523 const QString& = QString(), const QString& = QString() );
524 virtual ~QtxPagePrefColorItem();
526 virtual void store();
527 virtual void retrieve();
530 QtxColorButton* myColor;
533 class QTX_EXPORT QtxPagePrefFontItem : public QObject, public QtxPageNamedPrefItem
538 QtxPagePrefFontItem( const int, const QString&, QtxPreferenceItem* = 0,
539 const QString& = QString(), const QString& = QString() );
540 QtxPagePrefFontItem( const QString&, QtxPreferenceItem* = 0,
541 const QString& = QString(), const QString& = QString() );
542 virtual ~QtxPagePrefFontItem();
544 int features() const;
545 void setFeatures( const int );
547 void setMode( const int );
550 void setFonts( const QStringList& );
551 QStringList fonts() const;
553 void setSizes( const QList<int>& = QList<int>() );
554 QList<int> sizes() const;
556 virtual void store();
557 virtual void retrieve();
560 virtual QVariant optionValue( const QString& ) const;
561 virtual void setOptionValue( const QString&, const QVariant& );
567 class QTX_EXPORT QtxPagePrefPathItem : public QtxPageNamedPrefItem
570 QtxPagePrefPathItem( const Qtx::PathType, const QString&, QtxPreferenceItem* = 0,
571 const QString& = QString(), const QString& = QString() );
572 QtxPagePrefPathItem( const QString&, QtxPreferenceItem* = 0,
573 const QString& = QString(), const QString& = QString() );
574 virtual ~QtxPagePrefPathItem();
576 Qtx::PathType pathType() const;
577 void setPathType( const Qtx::PathType );
579 QString pathFilter() const;
580 void setPathFilter( const QString& );
582 virtual void store();
583 virtual void retrieve();
586 virtual QVariant optionValue( const QString& ) const;
587 virtual void setOptionValue( const QString&, const QVariant& );
593 class QTX_EXPORT QtxPagePrefPathListItem : public QtxPageNamedPrefItem
596 QtxPagePrefPathListItem( QtxPreferenceItem* = 0,
597 const QString& = QString(), const QString& = QString() );
598 QtxPagePrefPathListItem( const QString&, QtxPreferenceItem* = 0,
599 const QString& = QString(), const QString& = QString() );
600 QtxPagePrefPathListItem( const Qtx::PathType, const QString&, QtxPreferenceItem* = 0,
601 const QString& = QString(), const QString& = QString() );
602 virtual ~QtxPagePrefPathListItem();
604 Qtx::PathType pathType() const;
605 void setPathType( const Qtx::PathType );
607 virtual void store();
608 virtual void retrieve();
611 virtual QVariant optionValue( const QString& ) const;
612 virtual void setOptionValue( const QString&, const QVariant& );
615 QtxPathListEdit* myPaths;
618 class QTX_EXPORT QtxPagePrefDateTimeItem : public QtxPageNamedPrefItem
621 typedef enum { Date, Time, DateTime } InputType;
624 QtxPagePrefDateTimeItem( const QString&, QtxPreferenceItem* = 0,
625 const QString& = QString(), const QString& = QString() );
626 QtxPagePrefDateTimeItem( const int, const QString&, QtxPreferenceItem* = 0,
627 const QString& = QString(), const QString& = QString() );
628 virtual ~QtxPagePrefDateTimeItem();
630 int inputType() const;
631 void setInputType( const int );
633 bool calendar() const;
634 void setCalendar( const bool );
636 QDate maximumDate() const;
637 QTime maximumTime() const;
638 QDate minimumDate() const;
639 QTime minimumTime() const;
641 void setMaximumDate( const QDate& );
642 void setMaximumTime( const QTime& );
643 void setMinimumDate( const QDate& );
644 void setMinimumTime( const QTime& );
646 virtual void store();
647 virtual void retrieve();
650 virtual QVariant optionValue( const QString& ) const;
651 virtual void setOptionValue( const QString&, const QVariant& );
654 void updateDateTime();
658 QDateTimeEdit* myDateTime;