1 // Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE
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, or (at your option) any later version.
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
20 // File: QtxPagePrefMgr.h
21 // Author: Sergey TELKOV
23 #ifndef QTXPAGEPREFMGR_H
24 #define QTXPAGEPREFMGR_H
26 #include "QtxPreferenceMgr.h"
28 #include "QtxPathEdit.h"
29 #include "QtxPathListEdit.h"
45 class QtxBackgroundTool;
60 class QTX_EXPORT QtxPagePrefMgr : public QFrame, public QtxPreferenceMgr
65 QtxPagePrefMgr( QtxResourceMgr*, QWidget* = 0 );
66 virtual ~QtxPagePrefMgr();
68 virtual QSize sizeHint() const;
69 virtual QSize minimumSizeHint() const;
71 virtual void updateContents();
74 void resourceChanged( int );
75 void resourceChanged( QString&, QString& );
76 void resourcesChanged( const QMap<int, QString>& );
79 virtual void setVisible( bool );
82 virtual void itemAdded( QtxPreferenceItem* );
83 virtual void itemRemoved( QtxPreferenceItem* );
84 virtual void itemChanged( QtxPreferenceItem* );
86 virtual QVariant optionValue( const QString& ) const;
87 virtual void setOptionValue( const QString&, const QVariant& );
90 void initialize() const;
91 void initialize( QtxPreferenceItem* );
98 class QTX_EXPORT QtxPagePrefItem : public QtxPreferenceItem
103 QtxPagePrefItem( const QString&, QtxPreferenceItem* = 0,
104 const QString& = QString(), const QString& = QString() );
105 virtual ~QtxPagePrefItem();
107 QWidget* widget() const;
109 virtual void activate();
112 void setWidget( QWidget* );
114 virtual void itemAdded( QtxPreferenceItem* );
115 virtual void itemRemoved( QtxPreferenceItem* );
116 virtual void itemChanged( QtxPreferenceItem* );
118 void pageChildItems( QList<QtxPagePrefItem*>&, const bool = false ) const;
120 virtual void store();
121 virtual void retrieve();
123 virtual void widgetShown();
124 virtual void widgetHided();
126 virtual void ensureVisible( QtxPreferenceItem* );
129 virtual void contentChanged();
132 QPointer<QWidget> myWidget;
133 Listener* myListener;
136 class QTX_EXPORT QtxPageNamedPrefItem : public QtxPagePrefItem
139 QtxPageNamedPrefItem( const QString&, QtxPreferenceItem* = 0,
140 const QString& = QString(), const QString& = QString() );
141 virtual ~QtxPageNamedPrefItem();
143 virtual void setTitle( const QString& );
145 static void adjustLabels( QtxPagePrefItem* );
148 QLabel* label() const;
149 QWidget* control() const;
151 void setControl( QWidget* );
154 QPointer<QLabel> myLabel;
155 QPointer<QWidget> myControl;
158 class QTX_EXPORT QtxPagePrefListItem : public QObject, public QtxPagePrefItem
163 QtxPagePrefListItem( const QString&, QtxPreferenceItem* = 0,
164 const QString& = QString(), const QString& = QString() );
165 virtual ~QtxPagePrefListItem();
167 virtual void updateContents();
169 QString emptyInfo() const;
170 void setEmptyInfo( const QString& );
172 bool isFixedSize() const;
173 void setFixedSize( const bool );
176 void onItemSelectionChanged();
179 virtual QVariant optionValue( const QString& ) const;
180 virtual void setOptionValue( const QString&, const QVariant& );
181 virtual void ensureVisible( QtxPreferenceItem* );
183 virtual void widgetShown();
189 void updateVisible();
191 int selected() const;
192 QtxPagePrefItem* selectedItem() const;
193 void setSelected( const int );
198 QStackedWidget* myStack;
204 class QTX_EXPORT QtxPagePrefToolBoxItem : public QtxPagePrefItem
207 QtxPagePrefToolBoxItem( const QString&, QtxPreferenceItem* = 0,
208 const QString& = QString(), const QString& = QString() );
209 virtual ~QtxPagePrefToolBoxItem();
211 virtual void updateContents();
214 virtual void ensureVisible( QtxPreferenceItem* );
217 void updateToolBox();
223 class QTX_EXPORT QtxPagePrefTabsItem : public QtxPagePrefItem
226 QtxPagePrefTabsItem( const QString&, QtxPreferenceItem* = 0,
227 const QString& = QString(), const QString& = QString() );
228 virtual ~QtxPagePrefTabsItem();
230 virtual void updateContents();
232 int tabPosition() const;
233 void setTabPosition( const int );
235 int tabShape() const;
236 void setTabShape( const int );
238 QSize tabIconSize() const;
239 void setTabIconSize( const QSize& );
242 virtual QVariant optionValue( const QString& ) const;
243 virtual void setOptionValue( const QString&, const QVariant& );
244 virtual void ensureVisible( QtxPreferenceItem* );
253 class QTX_EXPORT QtxPagePrefFrameItem : public QtxPagePrefItem
256 QtxPagePrefFrameItem( const QString&, QtxPreferenceItem* = 0,
257 const QString& = QString(), const QString& = QString(), const bool = false );
258 virtual ~QtxPagePrefFrameItem();
260 virtual void updateContents();
262 bool stretch() const;
263 void setStretch( const bool );
266 void setMargin( const int );
269 void setSpacing( const int );
272 void setColumns( const int );
274 Qt::Orientation orientation() const;
275 void setOrientation( const Qt::Orientation );
278 virtual QVariant optionValue( const QString& ) const;
279 virtual void setOptionValue( const QString&, const QVariant& );
281 virtual void widgetShown();
290 class QTX_EXPORT QtxPagePrefGroupItem : public QtxPagePrefItem
293 QtxPagePrefGroupItem( const QString&, QtxPreferenceItem* = 0,
294 const QString& = QString(), const QString& = QString() );
295 QtxPagePrefGroupItem( const int, const QString&, QtxPreferenceItem* = 0,
296 const QString& = QString(), const QString& = QString() );
297 virtual ~QtxPagePrefGroupItem();
299 virtual void updateContents();
302 void setMargin( const int );
305 void setSpacing( const int );
308 void setColumns( const int );
310 Qt::Orientation orientation() const;
311 void setOrientation( const Qt::Orientation );
314 void setFlat( const bool );
316 virtual void setResource( const QString&, const QString& );
318 virtual void store();
319 virtual void retrieve();
321 QtxGridBox* gridBox() const;
324 virtual QVariant optionValue( const QString& ) const;
325 virtual void setOptionValue( const QString&, const QVariant& );
327 virtual void widgetShown();
335 QtxGroupBox* myGroup;
338 class QTX_EXPORT QtxPagePrefLabelItem : public QtxPagePrefItem
341 QtxPagePrefLabelItem( const QString&, QtxPreferenceItem* = 0 );
342 QtxPagePrefLabelItem( Qt::Alignment, const QString&, QtxPreferenceItem* = 0 );
343 virtual ~QtxPagePrefLabelItem();
345 virtual void setTitle( const QString& );
347 Qt::Alignment alignment() const;
348 void setAlignment( Qt::Alignment );
351 virtual QVariant optionValue( const QString& ) const;
352 virtual void setOptionValue( const QString&, const QVariant& );
355 QPointer<QLabel> myLabel;
358 class QTX_EXPORT QtxPagePrefSpaceItem : public QtxPagePrefItem
361 QtxPagePrefSpaceItem( QtxPreferenceItem* = 0 );
362 QtxPagePrefSpaceItem( Qt::Orientation, QtxPreferenceItem* = 0 );
363 QtxPagePrefSpaceItem( const int, const int, QtxPreferenceItem* = 0 );
364 virtual ~QtxPagePrefSpaceItem();
366 int size( Qt::Orientation ) const;
367 void setSize( Qt::Orientation, const int );
369 int stretch( Qt::Orientation ) const;
370 void setStretch( Qt::Orientation, const int );
373 virtual QVariant optionValue( const QString& ) const;
374 virtual void setOptionValue( const QString&, const QVariant& );
377 void initialize( const int, const int, const int, const int );
380 class QTX_EXPORT QtxPagePrefCheckItem : public QtxPagePrefItem
383 QtxPagePrefCheckItem( const QString&, QtxPreferenceItem* = 0,
384 const QString& = QString(), const QString& = QString() );
385 virtual ~QtxPagePrefCheckItem();
387 virtual void setTitle( const QString& );
389 virtual void store();
390 virtual void retrieve();
396 class QTX_EXPORT QtxPagePrefEditItem : public QtxPageNamedPrefItem
399 typedef enum { String, Integer, Double } InputType;
402 QtxPagePrefEditItem( const QString&, QtxPreferenceItem* = 0,
403 const QString& = QString(), const QString& = QString() );
404 QtxPagePrefEditItem( const int, const QString&, QtxPreferenceItem* = 0,
405 const QString& = QString(), const QString& = QString() );
406 virtual ~QtxPagePrefEditItem();
408 int inputType() const;
409 void setInputType( const int );
411 int decimals() const;
412 void setDecimals( const int );
414 int echoMode() const;
415 void setEchoMode( const int );
417 virtual void store();
418 virtual void retrieve();
421 virtual QVariant optionValue( const QString& ) const;
422 virtual void setOptionValue( const QString&, const QVariant& );
434 class QTX_EXPORT QtxPagePrefSliderItem : public QObject,public QtxPageNamedPrefItem
439 QtxPagePrefSliderItem( const QString&, QtxPreferenceItem* = 0,
440 const QString& = QString(), const QString& = QString() );
441 virtual ~QtxPagePrefSliderItem();
443 int singleStep() const;
444 int pageStep() const;
447 QList<QIcon> icons() const;
449 void setSingleStep( const int& );
450 void setPageStep( const int& );
451 void setMinimum( const int& );
452 void setMaximum( const int& );
453 void setIcons( const QList<QIcon>& );
455 virtual void store();
456 virtual void retrieve();
459 virtual QVariant optionValue( const QString& ) const;
460 virtual void setOptionValue( const QString&, const QVariant& );
467 void setIcons( const QVariant& );
472 QList<QIcon> myIcons;
475 class QTX_EXPORT QtxPagePrefSelectItem : public QtxPageNamedPrefItem
478 typedef enum { NoInput, String, Integer, Double } InputType;
481 QtxPagePrefSelectItem( const QString&, QtxPreferenceItem* = 0,
482 const QString& = QString(), const QString& = QString() );
483 QtxPagePrefSelectItem( const int, const QString&, QtxPreferenceItem* = 0,
484 const QString& = QString(), const QString& = QString() );
485 virtual ~QtxPagePrefSelectItem();
487 int inputType() const;
488 void setInputType( const int );
490 QStringList strings() const;
491 QList<QVariant> numbers() const;
492 QList<QIcon> icons() const;
494 void setStrings( const QStringList& );
495 void setNumbers( const QList<QVariant>& );
496 void setIcons( const QList<QIcon>& );
498 virtual void store();
499 virtual void retrieve();
502 virtual QVariant optionValue( const QString& ) const;
503 virtual void setOptionValue( const QString&, const QVariant& );
506 void updateSelector();
507 void setStrings( const QVariant& );
508 void setNumbers( const QVariant& );
509 void setIcons( const QVariant& );
513 QtxComboBox* mySelector;
516 class QTX_EXPORT QtxPagePrefSpinItem : public QtxPageNamedPrefItem
519 typedef enum { Integer, Double } InputType;
522 QtxPagePrefSpinItem( const QString&, QtxPreferenceItem* = 0,
523 const QString& = QString(), const QString& = QString() );
524 QtxPagePrefSpinItem( const int, const QString&, QtxPreferenceItem* = 0,
525 const QString& = QString(), const QString& = QString() );
526 virtual ~QtxPagePrefSpinItem();
528 QVariant step() const;
529 QVariant precision() const;
530 QVariant minimum() const;
531 QVariant maximum() const;
533 QString prefix() const;
534 QString suffix() const;
535 QString specialValueText() const;
537 void setStep( const QVariant& );
538 void setPrecision( const QVariant& );
539 void setMinimum( const QVariant& );
540 void setMaximum( const QVariant& );
542 void setPrefix( const QString& );
543 void setSuffix( const QString& );
544 void setSpecialValueText( const QString& );
546 int inputType() const;
547 void setInputType( const int );
549 virtual void store();
550 virtual void retrieve();
553 virtual QVariant optionValue( const QString& ) const;
554 virtual void setOptionValue( const QString&, const QVariant& );
557 void updateSpinBox();
563 class QTX_EXPORT QtxPagePrefTextItem : public QtxPageNamedPrefItem
566 QtxPagePrefTextItem( QtxPreferenceItem* = 0,
567 const QString& = QString(), const QString& = QString() );
568 QtxPagePrefTextItem( const QString&, QtxPreferenceItem* = 0,
569 const QString& = QString(), const QString& = QString() );
570 virtual ~QtxPagePrefTextItem();
572 virtual void store();
573 virtual void retrieve();
579 class QTX_EXPORT QtxPagePrefColorItem : public QtxPageNamedPrefItem
582 QtxPagePrefColorItem( const QString&, QtxPreferenceItem* = 0,
583 const QString& = QString(), const QString& = QString() );
584 virtual ~QtxPagePrefColorItem();
586 virtual void store();
587 virtual void retrieve();
590 QtxColorButton* myColor;
593 class QTX_EXPORT QtxPagePrefBiColorItem : public QtxPageNamedPrefItem
596 QtxPagePrefBiColorItem( const QString&, QtxPreferenceItem* = 0,
597 const QString& = QString(), const QString& = QString() );
598 virtual ~QtxPagePrefBiColorItem();
600 virtual QString text() const;
601 virtual void setText( const QString& );
603 virtual void store();
604 virtual void retrieve();
607 virtual QVariant optionValue( const QString& ) const;
608 virtual void setOptionValue( const QString&, const QVariant& );
611 QtxBiColorTool* myColors;
614 class QTX_EXPORT QtxPagePrefFontItem : public QObject, public QtxPageNamedPrefItem
619 QtxPagePrefFontItem( const int, const QString&, QtxPreferenceItem* = 0,
620 const QString& = QString(), const QString& = QString() );
621 QtxPagePrefFontItem( const QString&, QtxPreferenceItem* = 0,
622 const QString& = QString(), const QString& = QString() );
623 virtual ~QtxPagePrefFontItem();
625 int features() const;
626 void setFeatures( const int );
628 void setMode( const int );
631 void setFonts( const QStringList& );
632 QStringList fonts() const;
634 void setSizes( const QList<int>& = QList<int>() );
635 QList<int> sizes() const;
637 virtual void store();
638 virtual void retrieve();
641 virtual QVariant optionValue( const QString& ) const;
642 virtual void setOptionValue( const QString&, const QVariant& );
648 class QTX_EXPORT QtxPagePrefPathItem : public QtxPageNamedPrefItem
651 QtxPagePrefPathItem( const Qtx::PathType, const QString&, QtxPreferenceItem* = 0,
652 const QString& = QString(), const QString& = QString() );
653 QtxPagePrefPathItem( const QString&, QtxPreferenceItem* = 0,
654 const QString& = QString(), const QString& = QString() );
655 virtual ~QtxPagePrefPathItem();
657 Qtx::PathType pathType() const;
658 void setPathType( const Qtx::PathType );
660 QString pathFilter() const;
661 void setPathFilter( const QString& );
663 QFileDialog::Options pathOptions() const;
664 void setPathOptions(const QFileDialog::Options);
666 virtual void store();
667 virtual void retrieve();
670 virtual QVariant optionValue( const QString& ) const;
671 virtual void setOptionValue( const QString&, const QVariant& );
677 class QTX_EXPORT QtxPagePrefPathListItem : public QtxPageNamedPrefItem
680 QtxPagePrefPathListItem( QtxPreferenceItem* = 0,
681 const QString& = QString(), const QString& = QString() );
682 QtxPagePrefPathListItem( const QString&, QtxPreferenceItem* = 0,
683 const QString& = QString(), const QString& = QString() );
684 QtxPagePrefPathListItem( const Qtx::PathType, const QString&, QtxPreferenceItem* = 0,
685 const QString& = QString(), const QString& = QString() );
686 virtual ~QtxPagePrefPathListItem();
688 Qtx::PathType pathType() const;
689 void setPathType( const Qtx::PathType );
691 virtual void store();
692 virtual void retrieve();
695 virtual QVariant optionValue( const QString& ) const;
696 virtual void setOptionValue( const QString&, const QVariant& );
699 QtxPathListEdit* myPaths;
702 class QTX_EXPORT QtxPagePrefDateTimeItem : public QtxPageNamedPrefItem
705 typedef enum { Date, Time, DateTime } InputType;
708 QtxPagePrefDateTimeItem( const QString&, QtxPreferenceItem* = 0,
709 const QString& = QString(), const QString& = QString() );
710 QtxPagePrefDateTimeItem( const int, const QString&, QtxPreferenceItem* = 0,
711 const QString& = QString(), const QString& = QString() );
712 virtual ~QtxPagePrefDateTimeItem();
714 int inputType() const;
715 void setInputType( const int );
717 bool calendar() const;
718 void setCalendar( const bool );
720 QDate maximumDate() const;
721 QTime maximumTime() const;
722 QDate minimumDate() const;
723 QTime minimumTime() const;
725 void setMaximumDate( const QDate& );
726 void setMaximumTime( const QTime& );
727 void setMinimumDate( const QDate& );
728 void setMinimumTime( const QTime& );
730 virtual void store();
731 virtual void retrieve();
734 virtual QVariant optionValue( const QString& ) const;
735 virtual void setOptionValue( const QString&, const QVariant& );
738 void updateDateTime();
742 QDateTimeEdit* myDateTime;
745 class QTX_EXPORT QtxPagePrefBackgroundItem : public QObject, public QtxPageNamedPrefItem
750 QtxPagePrefBackgroundItem( const QString&, QtxPreferenceItem* = 0,
751 const QString& = QString(), const QString& = QString() );
752 virtual ~QtxPagePrefBackgroundItem();
754 void gradients( QStringList&, QIntList& ) const;
755 void setGradients( const QStringList&, const QIntList& = QIntList() );
757 bool isModeAllowed( Qtx::BackgroundMode ) const;
758 void setModeAllowed( Qtx::BackgroundMode, bool );
760 bool isTextureModeAllowed( Qtx::TextureMode ) const;
761 void setTextureModeAllowed( Qtx::TextureMode, bool );
763 bool isTextureAllowed() const;
764 void setTextureAllowed( bool );
766 QString imageFormats() const;
767 void setImageFormats( const QString& );
769 Qt::Orientation orientation() const;
770 void setOrientation( Qt::Orientation );
772 virtual void store();
773 virtual void retrieve();
776 virtual QVariant optionValue( const QString& ) const;
777 virtual void setOptionValue( const QString&, const QVariant& );
780 QtxBackgroundTool* myBgTool;
783 class QtxUserDefinedContent: public QWidget
786 QtxUserDefinedContent(QWidget* parent = 0, Qt::WindowFlags f = 0 ):QWidget(parent, f) {};
787 virtual void store(QtxResourceMgr* theRes, QtxPreferenceMgr* thePref) = 0;
788 virtual void retrieve(QtxResourceMgr* theRes, QtxPreferenceMgr* thePref) = 0;
792 class QTX_EXPORT QtxUserDefinedItem : public QtxPageNamedPrefItem
795 QtxUserDefinedItem( QtxPreferenceItem* parent );
797 void setContent( QtxUserDefinedContent* theContent );
799 virtual void store();
800 virtual void retrieve();
803 virtual QVariant optionValue( const QString& theName ) const;
804 virtual void setOptionValue( const QString& theName, const QVariant& theVal );
807 QtxUserDefinedContent* myContent;