Salome HOME
Fix for bug 10438: Crash during Explode on Blocks operation (Global selection on...
[modules/gui.git] / src / Qtx / QtxListView.h
1
2 #ifndef QTXLISTVIEW_H
3 #define QTXLISTVIEW_H
4
5 #include "Qtx.h"
6
7 #ifdef WIN32
8 #pragma warning( disable:4251 )
9 #endif
10
11 #include <qlistview.h>
12 #include <qiconset.h>
13
14 class QButton;
15 class QPopupMenu;
16
17 class QTX_EXPORT QtxListView : public QListView
18 {
19   Q_OBJECT
20
21 public:
22   enum { HeaderAuto, HeaderButton, NoHeaderButton };
23
24 public:
25   QtxListView( QWidget* = 0, const char* = 0, WFlags = 0 );
26   QtxListView( const int, QWidget* = 0, const char* = 0, WFlags = 0 );
27   virtual ~QtxListView();
28
29   virtual int   addColumn( const QString&, int = -1 );
30   virtual int   addColumn( const QIconSet&, const QString&, int width = -1 );
31
32   virtual void  removeColumn( int );
33
34   virtual void  resize( int, int );
35
36   void          show( int );
37   void          hide( int );
38
39   bool          isShown( int ) const;
40   void          setShown( int, bool );
41
42   bool          appropriate( const int ) const;
43   virtual void  setAppropriate( const int, const bool );
44
45   virtual void  setColumnWidth( int, int );
46
47   virtual QSize sizeHint() const;
48   virtual QSize minimumSizeHint() const;
49
50 public slots:
51   virtual void  show();
52   virtual void  resizeContents( int, int );
53
54 protected slots:
55   void          onHeaderResized();
56   void          onButtonClicked();
57   void          onShowHide( int );
58
59 protected:
60   virtual void  viewportResizeEvent( QResizeEvent* );
61   virtual bool  eventFilter( QObject*, QEvent* );
62   virtual void  showPopup( const int x, const int y );
63
64 private:
65   typedef struct { int width; bool resizeable; } ColumnData;
66   typedef QMap<int, ColumnData>                  ColumnsMap;
67
68 private:
69   void          initialize();
70
71 private:
72   QPopupMenu*   myPopup;
73   QButton*      myButton;
74   ColumnsMap    myColumns;
75   QIntList      myAppropriate;
76   int           myHeaderState;
77 };
78
79 #ifdef WIN32
80 #pragma warning( default:4251 )
81 #endif
82
83 #endif