diff options
Diffstat (limited to 'main/dependencies/qt3/src/widgets/qsplitter.h')
-rw-r--r-- | main/dependencies/qt3/src/widgets/qsplitter.h | 73 |
1 files changed, 72 insertions, 1 deletions
diff --git a/main/dependencies/qt3/src/widgets/qsplitter.h b/main/dependencies/qt3/src/widgets/qsplitter.h index 97b95adb6..c159e0ff6 100644 --- a/main/dependencies/qt3/src/widgets/qsplitter.h +++ b/main/dependencies/qt3/src/widgets/qsplitter.h @@ -48,11 +48,52 @@ #ifndef QT_NO_SPLITTER +#define QT_QSPLITTER_DEFAULT 2 + class QSplitterHandle; class QSplitterPrivate; class QSplitterLayoutStruct; class QTextStream; +class QSplitterPrivate +{ +public: + QSplitterPrivate() + : opaque( FALSE ), firstShow( TRUE ), childrenCollapsible( TRUE ), + handleWidth( 0 ) { } + + QPtrList<QSplitterLayoutStruct> list; + bool opaque : 8; + bool firstShow : 8; + bool childrenCollapsible : 8; + int handleWidth; +}; + +class QSplitterLayoutStruct : public Qt +{ +public: + QCOORD sizer; + uint isHandle : 1; + uint collapsible : 2; + uint resizeMode : 2; + QWidget *wid; + + QSplitterLayoutStruct() + : sizer( -1 ), collapsible( QT_QSPLITTER_DEFAULT ) { } + QCOORD getSizer( Orientation orient ); +}; + +QCOORD QSplitterLayoutStruct::getSizer( Orientation orient ) +{ + if ( sizer == -1 ) { + QSize s = wid->sizeHint(); + if ( !s.isValid() || wid->testWState(WState_Resized) ) + s = wid->size(); + sizer = ( orient == Horizontal ) ? s.width() : s.height(); + } + return sizer; +} + class Q_EXPORT QSplitter : public QFrame { Q_OBJECT @@ -111,7 +152,7 @@ protected: virtual void setRubberband( int ); void getRange( int id, int *, int * ); -private: +public: //private: enum { DefaultResizeMode = 3 }; void init(); @@ -164,6 +205,36 @@ Q_EXPORT QTextStream& operator<<( QTextStream&, const QSplitter& ); Q_EXPORT QTextStream& operator>>( QTextStream&, QSplitter& ); #endif +class QSplitterHandle : public QWidget +{ + Q_OBJECT +public: + QSplitterHandle( Orientation o, + QSplitter *parent, const char* name=0 ); + void setOrientation( Orientation o ); + Orientation orientation() const { return orient; } + + bool opaque() const { return s->opaqueResize(); } + + QSize sizeHint() const; + + int id() const { return myId; } // d->list.at(id())->wid == this + void setId( int i ) { myId = i; } + +protected: + void paintEvent( QPaintEvent * ); + void mouseMoveEvent( QMouseEvent * ); + void mousePressEvent( QMouseEvent * ); + void mouseReleaseEvent( QMouseEvent * ); + +public: // private: + Orientation orient; + bool opaq; + int myId; + + QSplitter *s; +}; + #endif // QT_NO_SPLITTER #endif // QSPLITTER_H |