Salome HOME
Popup item "Refresh"
[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   virtual QSize sizeHint() const;
43   virtual QSize minimumSizeHint() const;
44
45 public slots:
46   virtual void  show();
47   virtual void  resizeContents( int, int );
48
49 protected slots:
50   void          onHeaderResized();
51   void          onButtonClicked();
52   void          onShowHide( int );
53
54 protected:
55   virtual void  viewportResizeEvent( QResizeEvent* );
56
57 private:
58   typedef struct { int width; bool resizeable; } ColumnData;
59   typedef QMap<int, ColumnData>                  ColumnsMap;
60
61 private:
62   void          initialize();
63
64 private:
65   QPopupMenu*   myPopup;
66   QButton*      myButton;
67   ColumnsMap    myColumns;
68   int           myHeaderState;
69 };
70
71 #ifdef WIN32
72 #pragma warning( default:4251 )
73 #endif
74
75 #endif