Salome HOME
References in object browser
[modules/gui.git] / src / Qtx / QtxListBox.h
1 // File:      QtxListBox.h
2 // Author:    Sergey TELKOV
3
4 #ifndef QTXLISTBOX_H
5 #define QTXLISTBOX_H
6
7 #include "Qtx.h"
8
9 #include <qlistbox.h>
10
11 #ifdef WIN32
12 #pragma warning( disable:4251 )
13 #endif
14
15 class QLineEdit;
16 class QValidator;
17
18 class QTX_EXPORT QtxListBox : public QListBox
19 {
20     Q_OBJECT
21
22 public:
23     QtxListBox( QWidget* = 0, const char* = 0, WFlags = 0 );
24     virtual ~QtxListBox();
25
26     bool              isEditEnabled() const;
27     bool              defaultEditAction() const;
28     bool              isModificationEnabled() const;
29
30     QListBoxItem*     editedItem() const;
31     int               editedIndex() const;
32
33     void              startEdition( const int );
34     void              startEdition( const QListBoxItem* );
35     void              endEdition( const bool );
36
37     void              ensureItemVisible( const int );
38     void              ensureItemVisible( const QListBoxItem* );
39
40     virtual bool      eventFilter( QObject*, QEvent* );
41
42     const QValidator* validator() const;
43
44     void              moveItemToTop( const int );
45     void              moveItemToBottom( const int );
46     void              moveItem( const int, const int );
47
48     void              createItem( const int = -1 );
49     void              deleteItem( const int = -1 );
50
51 signals:
52     void              itemEdited( int );
53     void              itemEdited( QListBoxItem* );
54     void              itemMoved( int, int );
55
56 public slots:
57     virtual void      setEditEnabled( bool );
58     virtual void      setDefaultEditAction( bool );
59     virtual void      setModificationEnabled( bool );
60
61     virtual void      clearValidator();
62     virtual void      setValidator( const QValidator* );
63     virtual void      setContentsPos( int, int );
64
65 private slots:
66     void              onContentsMoving( int, int );
67
68 protected:
69     virtual void      keyPressEvent( QKeyEvent* );
70     virtual void      viewportResizeEvent( QResizeEvent* );
71     virtual void      mouseDoubleClickEvent( QMouseEvent* );
72
73 private:
74     QLineEdit*        editor() const;
75     void              createEditor();
76     void              updateEditor();
77
78 private:
79     QLineEdit*        myEditor;
80     int               myEditIndex;
81     bool              myEditState;
82     bool              myEditDefault;
83     bool              myModifEnabled;
84 };
85
86 #ifdef WIN32
87 #pragma warning( default:4251 )
88 #endif
89
90 #endif