Salome HOME
Splash screen was implemented. Changes in packages SUIT and Session are integrated.
[modules/gui.git] / src / Qtx / QtxComboBox.h
1 // File:      QtxComboBox.h
2 // Author:    Sergey TELKOV
3
4 #ifndef QTXCOMBOBOX_H
5 #define QTXCOMBOBOX_H
6
7 #include "Qtx.h"
8
9 #include <qmap.h>
10 #include <qcombobox.h>
11
12 #ifdef WIN32
13 #pragma warning( disable:4251 )
14 #endif
15
16 class QTX_EXPORT QtxComboBox : public QComboBox
17 {
18     Q_OBJECT
19
20     typedef QMap<int, int> IndexIdMap;
21
22 public:
23     QtxComboBox( QWidget* = 0, const char* = 0 );
24     QtxComboBox( bool, QWidget* = 0, const char* = 0 );
25     virtual ~QtxComboBox();
26
27     bool         isCleared() const;
28     void         setCleared( const bool );
29
30     virtual void setCurrentItem( int );
31     virtual void setCurrentText( const QString& );
32
33     int          currentId() const;
34     void         setCurrentId( int );
35
36 signals:
37     void         activatedId( int );
38     void         highlightedId( int );
39
40 private slots:
41     void         onActivated( int );
42     void         onActivated( const QString& );
43
44 protected:
45     virtual void paintEvent( QPaintEvent* );
46
47 private:
48     int          id( const int ) const;
49     int          index( const int ) const;
50
51     void         resetClear();
52     void         paintClear( QPaintEvent* );
53
54 private:
55     bool         myCleared;
56     IndexIdMap   myIndexId;
57 };
58
59 #ifdef WIN32
60 #pragma warning( default:4251 )
61 #endif
62
63 #endif