kdockwidget_private.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KDOCKWIDGET_PRIVATE_H
00024 #define KDOCKWIDGET_PRIVATE_H
00025
00026 #include <qwidget.h>
00027 #include <qpushbutton.h>
00028
00029 #ifndef NO_KDE2
00030 #include <netwm_def.h>
00031 #endif
00032
00033 class QFrame;
00034 class KDockContainer;
00035
00036
00043 class KDockSplitter : public QWidget
00044 {
00045 Q_OBJECT
00046 public:
00047 KDockSplitter(QWidget *parent= 0, const char *name= 0, Orientation orient= Vertical, int pos= 50, bool highResolution=false);
00048 virtual ~KDockSplitter(){};
00049
00050 void activate(QWidget *c0, QWidget *c1 = 0L);
00051 void deactivate();
00052
00053 int separatorPos() const;
00054 void setSeparatorPos(int pos, bool do_resize = true);
00063
00064 void setSeparatorPosX(int pos, bool do_resize=false);
00065
00066 virtual bool eventFilter(QObject *, QEvent *);
00067 virtual bool event( QEvent * );
00068
00069 QWidget* getFirst() const { return child0; }
00070 QWidget* getLast() const { return child1; }
00071 QWidget* getAnother( QWidget* ) const;
00072 void updateName();
00073
00074 void setOpaqueResize(bool b=true);
00075 bool opaqueResize() const;
00076
00077 void setKeepSize(bool b=true);
00078 bool keepSize() const;
00079
00080 void setHighResolution(bool b=true);
00081 bool highResolution() const;
00082
00083 void setForcedFixedWidth(KDockWidget *dw,int w);
00084 void setForcedFixedHeight(KDockWidget *dw,int h);
00085 void restoreFromForcedFixedSize(KDockWidget *dw);
00086
00087 Orientation orientation(){return m_orientation;}
00088
00089 protected:
00090 friend class KDockContainer;
00091 int checkValue( int ) const;
00092 int checkValueOverlapped( int ,QWidget*) const;
00093 virtual void resizeEvent(QResizeEvent *);
00094
00095
00096
00097
00098 private:
00099 void setupMinMaxSize();
00100
00101 QWidget *child0, *child1;
00102 Orientation m_orientation;
00103 bool initialised;
00104 QFrame* divider;
00105 int xpos, savedXPos;
00106 bool mOpaqueResize, mKeepSize, mHighResolution;
00107 int fixedWidth0,fixedWidth1;
00108 int fixedHeight0,fixedHeight1;
00109 };
00110
00117 class KDockButton_Private : public QPushButton
00118 {
00119 Q_OBJECT
00120 public:
00121 KDockButton_Private( QWidget *parent=0, const char *name=0 );
00122 ~KDockButton_Private();
00123
00124 protected:
00125 virtual void drawButton( QPainter * );
00126 virtual void enterEvent( QEvent * );
00127 virtual void leaveEvent( QEvent * );
00128
00129 private:
00130 bool moveMouse;
00131 };
00132
00142 class KDockWidgetPrivate : public QObject
00143 {
00144 Q_OBJECT
00145 public:
00146 KDockWidgetPrivate();
00147 ~KDockWidgetPrivate();
00148
00149 public slots:
00153 void slotFocusEmbeddedWidget(QWidget* w = 0L);
00154
00155 public:
00156 enum KDockWidgetResize
00157 {ResizeLeft,ResizeTop,ResizeRight,ResizeBottom,ResizeBottomLeft,ResizeTopLeft,ResizeBottomRight,ResizeTopRight};
00158
00159 int index;
00160 int splitPosInPercent;
00161 bool pendingFocusInEvent;
00162 bool blockHasUndockedSignal;
00163 bool pendingDtor;
00164 int forcedWidth;
00165 int forcedHeight;
00166 bool isContainer;
00167
00168 #ifndef NO_KDE2
00169 NET::WindowType windowType;
00170 #endif
00171
00172 QWidget *_parent;
00173 bool transient;
00174
00175 QGuardedPtr<QWidget> container;
00176
00177 QPoint resizePos;
00178 bool resizing;
00179 KDockWidgetResize resizeMode;
00180 };
00181
00182 class KDockWidgetHeaderPrivate
00183 : public QObject
00184 {
00185 public:
00186 KDockWidgetHeaderPrivate( QObject* parent )
00187 : QObject( parent )
00188 {
00189 forceCloseButtonHidden=false;
00190 toDesktopButton = 0;
00191 showToDesktopButton = true;
00192 topLevel = false;
00193 dummy=0;
00194 }
00195 KDockButton_Private* toDesktopButton;
00196
00197 bool showToDesktopButton;
00198 bool topLevel;
00199 QPtrList<KDockButton_Private> btns;
00200 bool forceCloseButtonHidden;
00201 QWidget *dummy;
00202 };
00203
00204 #endif
This file is part of the documentation for kdeui Library Version 3.3.2.