Salome HOME
9650f4c5819ac131003a74a0fc445fe7466339dd
[modules/gui.git] / src / QDS / QDS_ComboBox.h
1 #ifndef QDS_COMBOBOX_H
2 #define QDS_COMBOBOX_H
3
4 #include "QDS_Datum.h"
5
6 #include <qmap.h>
7 #include <qpixmap.h>
8 #include <qstringlist.h>
9
10 #include <QtxComboBox.h>
11
12 #ifdef WNT
13 #pragma warning( disable:4251 )
14 #endif
15
16 class QDS_EXPORT QDS_ComboBox : public QDS_Datum
17 {
18   Q_OBJECT
19
20 public:
21   QDS_ComboBox( const QString&, QWidget* = 0, const int = All, const QString& = QString::null );
22   virtual ~QDS_ComboBox();
23
24   bool                       editable() const;
25   void                       setEditable( const bool );
26
27   int                        count( bool = false ) const;
28   void                       values( QValueList<int>&, bool = false ) const;
29
30   virtual int                integerValue() const;
31   virtual double             doubleValue() const;
32   virtual void               setIntegerValue( const int );
33   virtual void               setDoubleValue( const double );
34
35   bool                       state( const int ) const;
36   void                       setState( const bool, const int, const bool = true );
37   void                       setState( const bool, const QValueList<int>&, const bool = true );
38   void                       setValues( const QValueList<int>&, const QStringList& );
39   void                       setValues( const QStringList& );
40
41   virtual void               reset();
42
43   int                        stringToValue( const QString& ) const;
44   QString                    valueToString( const int ) const;
45
46 signals:
47   void                       activated( int );
48   void                       activated( const QString& );
49
50 protected slots:
51   virtual void               onActivated( int );
52   virtual void               onTextChanged( const QString& );
53
54 protected:
55   QtxComboBox*               comboBox() const;
56   virtual QWidget*           createControl( QWidget* );
57
58   virtual QString            getString() const;
59   virtual void               setString( const QString& );
60
61   virtual void               unitSystemChanged( const QString& );
62
63 private:
64   int                        getId( const int ) const;
65   int                        getId( const QString& ) const;
66   int                        getIndex( const int ) const;
67   int                        getIndex( const QString& ) const;
68
69   void                       updateComboBox();
70
71 private:
72   typedef QMap<int, QPixmap> IdIconsMap;
73   typedef QMap<int, QString> IdValueMap;
74   typedef QMap<int, bool>    IdStateMap;
75   typedef QMap<int, int>     IdIndexMap;
76
77 private:
78   IdValueMap                 myValue;
79   IdStateMap                 myState;
80   IdIndexMap                 myIndex;
81   IdIconsMap                 myIcons;
82
83   QIntList                   myDataIds;
84   QIntList                   myUserIds;
85   QStringList                myUserNames;
86 };
87
88 #ifdef WNT
89 #pragma warning( default:4251 )
90 #endif
91
92 #endif