|
|
|
@ -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
|
|
|
|
|