1 // SALOME PatchQt : patch for Qt
3 // Copyright (C) 2003 CEA/DEN, EDF R&D
7 // File : qworkspaceP.h
8 // Author : Vadim SANDLER
18 #include <qwidgetlist.h>
20 #include <qguardedptr.h>
25 class QWorkspacePChild;
27 class QWorkspacePPrivate;
29 class QWidgetResizeHandlerP;
32 class Q_EXPORT QWorkspaceP : public QWidget
35 Q_PROPERTY( bool scrollBarsEnabled READ scrollBarsEnabled WRITE setScrollBarsEnabled )
37 QWorkspaceP( QWidget* parent=0, const char* name=0 );
40 QWidget* activeWindow() const;
41 QWidgetList windowList() const;
43 QSize sizeHint() const;
45 bool scrollBarsEnabled() const;
46 void setScrollBarsEnabled( bool enable );
48 void setPaletteBackgroundColor( const QColor & );
49 void setPaletteBackgroundPixmap( const QPixmap & );
52 void windowActivated( QWidget* w);
60 void styleChange( QStyle& );
62 void childEvent( QChildEvent * );
63 void resizeEvent( QResizeEvent * );
64 bool eventFilter( QObject *, QEvent * );
65 void showEvent( QShowEvent *e );
66 void hideEvent( QHideEvent *e );
67 #ifndef QT_NO_WHEELEVENT
68 void wheelEvent( QWheelEvent *e );
72 void closeActiveWindow();
73 void closeAllWindows();
74 void normalizeActiveWindow();
75 void minimizeActiveWindow();
76 void showOperationMenu();
77 void popupOperationMenu( const QPoint& );
78 void operationMenuActivated( int );
79 void operationMenuAboutToShow();
80 void toolMenuAboutToShow();
81 void scrollBarChanged();
83 void activateNextWindow();
84 void activatePreviousWindow();
87 void activateWindow( QWidget* w, bool change_focus = TRUE );
90 void insertIcon( QWidget* w);
91 void removeIcon( QWidget* w);
92 void place( QWidget* );
94 QWorkspacePChild* findChild( QWidget* w);
95 void showMaximizeControls();
96 void hideMaximizeControls();
97 void showWindow( QWidget* w);
98 void maximizeWindow( QWidget* w);
99 void minimizeWindow( QWidget* w);
100 void normalizeWindow( QWidget* w);
102 QRect updateWorkspace();
105 QWorkspacePPrivate* d;
107 friend class QWorkspacePChild;
109 private: // Disabled copy constructor and operator=
110 #if defined(Q_DISABLE_COPY)
111 QWorkspaceP( const QWorkspaceP & );
112 QWorkspaceP& operator=( const QWorkspaceP & );
116 class QWorkspacePChild : public QFrame
120 friend class QWorkspaceP;
121 friend class QTitleBarP;
124 QWorkspacePChild( QWidget* window,
125 QWorkspaceP* parent=0, const char* name=0 );
128 void setActive( bool );
129 bool isActive() const;
131 void adjustToFullscreen();
134 QWidget* windowWidget() const;
135 QWidget* iconWidget() const;
140 QSize sizeHint() const;
141 QSize minimumSizeHint() const;
143 QSize baseSize() const;
146 void showOperationMenu();
147 void popupOperationMenu( const QPoint& );
151 void showMinimized();
152 void showMaximized();
155 void setCaption( const QString& );
156 void internalRaise();
157 void titleBarDoubleClicked();
159 void move( int x, int y );
162 void enterEvent( QEvent * );
163 void leaveEvent( QEvent * );
164 void childEvent( QChildEvent* );
165 void resizeEvent( QResizeEvent * );
166 void moveEvent( QMoveEvent * );
167 bool eventFilter( QObject *, QEvent * );
169 bool focusNextPrevChild( bool );
171 void drawFrame( QPainter * );
172 void styleChange( QStyle & );
175 QWidget* childWidget;
177 QWidgetResizeHandlerP *widgetResizeHandler;
178 QTitleBarP* titlebar;
179 QGuardedPtr<QTitleBarP> iconw;
182 QSize shadeRestoreMin;
185 bool snappedRight :1;
194 class Q_EXPORT QWidgetResizeHandlerP : public QObject
199 QWidgetResizeHandlerP( QWidget *parent, QWidget *cw = 0, const char *name = 0 );
200 void setActive( bool b ) { active = b; if ( !active ) setMouseCursor( Nowhere ); }
201 bool isActive() const { return active; }
202 void setMovingEnabled( bool b ) { moving = b; }
203 bool isMovingEnabled() const { return moving; }
205 bool isButtonDown() const { return buttonDown; }
207 void setExtraHeight( int h ) { extrahei = h; }
208 void setSizeProtection( bool b ) { sizeprotect = b; }
217 bool eventFilter( QObject *o, QEvent *e );
218 void mouseMoveEvent( QMouseEvent *e );
219 void keyPressEvent( QKeyEvent *e );
224 TopLeft, BottomRight, BottomLeft, TopRight,
225 Top, Bottom, Left, Right,
230 QWidget *childWidget;
232 QPoint invertedMoveOffset;
237 uint moveResizeMode :1;
242 void setMouseCursor( MousePosition m );
243 bool isMove() const {
244 return moveResizeMode && mode == Center;
246 bool isResize() const {
247 return moveResizeMode && !isMove();
250 private: // Disabled copy constructor and operator=
251 #if defined(Q_DISABLE_COPY)
252 QWidgetResizeHandlerP( const QWidgetResizeHandlerP & );
253 QWidgetResizeHandlerP& operator=( const QWidgetResizeHandlerP & );
259 class QTitleBarPPrivate;
262 class Q_EXPORT QTitleBarP : public QWidget
265 Q_PROPERTY( bool autoRaise READ autoRaise WRITE setAutoRaise )
266 Q_PROPERTY( bool movable READ isMovable WRITE setMovable )
269 QTitleBarP (QWidget* w, QWidget* parent, const char* name=0);
272 bool isActive() const;
273 bool usesActiveColor() const;
274 virtual QString visibleText() const;
276 bool isMovable() const;
277 void setMovable(bool);
279 bool autoRaise() const;
280 void setAutoRaise(bool);
282 QWidget *window() const;
284 QSize sizeHint() const;
287 void setActive( bool );
288 void setCaption( const QString& title );
289 void setIcon( const QPixmap& icon );
298 void showOperationMenu();
299 void popupOperationMenu( const QPoint& );
300 void doubleClicked();
303 bool event( QEvent *);
304 void resizeEvent( QResizeEvent *);
305 void contextMenuEvent( QContextMenuEvent * );
306 void mousePressEvent( QMouseEvent * );
307 void mouseDoubleClickEvent( QMouseEvent * );
308 void mouseReleaseEvent( QMouseEvent * );
309 void mouseMoveEvent( QMouseEvent * );
310 void enterEvent( QEvent *e );
311 void leaveEvent( QEvent *e );
312 void paintEvent( QPaintEvent *p );
314 virtual void cutText();
319 QTitleBarPPrivate *d;
322 #endif // QWORKSPACEP_H