Salome HOME
Fix for bug 10438: Crash during Explode on Blocks operation (Global selection on...
[modules/gui.git] / src / Qtx / QtxTable.h
1 // File:      QtxTable.h
2 // Author:    Sergey TELKOV
3
4 #ifndef QTX_TABLE_H
5 #define QTX_TABLE_H
6
7 #include "Qtx.h"
8
9 #include <qtable.h>
10
11 #ifndef QT_NO_TABLE
12
13 class QHeader;
14
15 class QTX_EXPORT QtxTable : public QTable
16 {
17   Q_OBJECT
18
19   class HeaderEditor;
20
21 public:
22   QtxTable( QWidget* = 0, const char* = 0 );
23   QtxTable( int, int, QWidget* = 0, const char* = 0 );
24   virtual ~QtxTable();
25
26   bool             headerEditable( Orientation ) const;
27
28   bool             editHeader( Orientation, const int );
29   void             endEditHeader( const bool = true );
30
31   virtual bool     eventFilter( QObject*, QEvent* );
32
33 signals:
34   void             headerEdited( QHeader*, int );
35   void             headerEdited( Orientation, int );
36
37 public slots:
38   virtual void     hide();
39   virtual void     setHeaderEditable( Orientation, bool );
40
41 private slots:
42   void             onScrollBarMoved( int );
43   void             onHeaderSizeChange( int, int, int );
44
45 protected:
46   virtual void     resizeEvent( QResizeEvent* );
47
48   virtual bool     beginHeaderEdit( Orientation, const int );
49   virtual void     endHeaderEdit( const bool = true );
50   bool             isHeaderEditing() const;
51   virtual QWidget* createHeaderEditor( QHeader*, const int, const bool = true );
52   virtual void     setHeaderContentFromEditor( QHeader*, const int, QWidget* );
53
54   QHeader*         header( Orientation o ) const;
55
56 private:
57   void             updateHeaderEditor();
58   void             beginHeaderEdit( Orientation, const QPoint& );
59   QRect            headerSectionRect( QHeader*, const int ) const;
60
61 private:
62   QWidget*         myHeaderEditor;
63   QHeader*         myEditedHeader;
64   int              myEditedSection;
65   QMap<int, bool>  myHeaderEditable;
66 };
67
68 #endif
69
70 #endif