diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-07-10 15:24:15 -0500 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-07-10 15:24:15 -0500 |
commit | bd0f3345a938b35ce6a12f6150373b0955b8dd12 (patch) | |
tree | 7a520322212d48ebcb9fbe1087e7fca28b76185c /src/workspace/qworkspace.h | |
download | qt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.tar.gz qt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.zip |
Add Qt3 development HEAD version
Diffstat (limited to 'src/workspace/qworkspace.h')
-rw-r--r-- | src/workspace/qworkspace.h | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/src/workspace/qworkspace.h b/src/workspace/qworkspace.h new file mode 100644 index 0000000..a4f7af7 --- /dev/null +++ b/src/workspace/qworkspace.h @@ -0,0 +1,169 @@ +/**************************************************************************** +** +** Definition of the QWorkspace class +** +** Created : 990210 +** +** Copyright (C) 1999-2008 Trolltech ASA. All rights reserved. +** +** This file is part of the workspace module of the Qt GUI Toolkit. +** +** This file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free +** Software Foundation and appearing in the files LICENSE.GPL2 +** and LICENSE.GPL3 included in the packaging of this file. +** Alternatively you may (at your option) use any later version +** of the GNU General Public License if such license has been +** publicly approved by Trolltech ASA (or its successors, if any) +** and the KDE Free Qt Foundation. +** +** Please review the following information to ensure GNU General +** Public Licensing requirements will be met: +** http://trolltech.com/products/qt/licenses/licensing/opensource/. +** If you are unsure which license is appropriate for your use, please +** review the following information: +** http://trolltech.com/products/qt/licenses/licensing/licensingoverview +** or contact the sales department at sales@trolltech.com. +** +** This file may be used under the terms of the Q Public License as +** defined by Trolltech ASA and appearing in the file LICENSE.QPL +** included in the packaging of this file. Licensees holding valid Qt +** Commercial licenses may use this file in accordance with the Qt +** Commercial License Agreement provided with the Software. +** +** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, +** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted +** herein. +** +**********************************************************************/ + +#ifndef QWORKSPACE_H +#define QWORKSPACE_H + +#ifndef QT_H +#include "qwidget.h" +#include "qwidgetlist.h" +#endif // QT_H + +#ifndef QT_NO_WORKSPACE + +#if !defined( QT_MODULE_WORKSPACE ) || defined( QT_INTERNAL_WORKSPACE ) +#define QM_EXPORT_WORKSPACE +#else +#define QM_EXPORT_WORKSPACE Q_EXPORT +#endif + +class QWorkspaceChild; +class QShowEvent; +class QWorkspacePrivate; +class QPopupMenu; +class QDockWindow; + +class QM_EXPORT_WORKSPACE QWorkspace : public QWidget +{ + Q_OBJECT + Q_PROPERTY( bool scrollBarsEnabled READ scrollBarsEnabled WRITE setScrollBarsEnabled ) + +#ifdef QT_WORKSPACE_WINDOWMODE +public: +#endif + enum WindowMode { TopLevel, MDI, AutoDetect }; + WindowMode windowMode() const; +#ifdef QT_WORKSPACE_WINDOWMODE +private: +#endif + +public: +#ifdef QT_WORKSPACE_WINDOWMODE + QWorkspace( WindowMode mode, QWidget* parent=0, const char* name=0 ); +#endif + QWorkspace( QWidget* parent=0, const char* name=0 ); + + ~QWorkspace(); + + enum WindowOrder { CreationOrder, StackingOrder }; + + QWidget* activeWindow() const; + QWidgetList windowList() const; // ### merge with below in 4.0 + QWidgetList windowList( WindowOrder order ) const; + + QSize sizeHint() const; + + bool scrollBarsEnabled() const; + void setScrollBarsEnabled( bool enable ); + + void setPaletteBackgroundColor( const QColor & ); + void setPaletteBackgroundPixmap( const QPixmap & ); + +signals: + void windowActivated( QWidget* w); + +public slots: + void cascade(); + void tile(); + void closeActiveWindow(); + void closeAllWindows(); + void activateNextWindow(); + void activatePrevWindow(); + +protected: +#ifndef QT_NO_STYLE + void styleChange( QStyle& ); +#endif + void childEvent( QChildEvent * ); + void resizeEvent( QResizeEvent * ); + bool eventFilter( QObject *, QEvent * ); + void showEvent( QShowEvent *e ); + void hideEvent( QHideEvent *e ); +#ifndef QT_NO_WHEELEVENT + void wheelEvent( QWheelEvent *e ); +#endif + +private slots: + void normalizeActiveWindow(); + void minimizeActiveWindow(); + void showOperationMenu(); + void popupOperationMenu( const QPoint& ); + void operationMenuActivated( int ); + void operationMenuAboutToShow(); + void toolMenuAboutToShow(); + void activatePreviousWindow(); // ### remove in Qt 4.0 + void dockWindowsShow(); + void scrollBarChanged(); + +private: + void init(); + void handleUndock( QDockWindow* w); + void insertIcon( QWidget* w); + void removeIcon( QWidget* w); + void place( QWidget* ); + + QWorkspaceChild* findChild( QWidget* w); + void showMaximizeControls(); + void hideMaximizeControls(); + void activateWindow( QWidget* w, bool change_focus = TRUE ); + void showWindow( QWidget* w); + void maximizeWindow( QWidget* w); + void minimizeWindow( QWidget* w); + void normalizeWindow( QWidget* w); + + QRect updateWorkspace(); + + QPopupMenu* popup; + QWorkspacePrivate* d; + + friend class QWorkspacePrivate; + friend class QWorkspaceChild; + +private: // Disabled copy constructor and operator= +#if defined(Q_DISABLE_COPY) + QWorkspace( const QWorkspace & ); + QWorkspace& operator=( const QWorkspace & ); +#endif +}; + + +#endif // QT_NO_WORKSPACE + +#endif // QWORKSPACE_H |