QtGui/qmdisubwindow.h Source File

qmdisubwindow.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #ifndef QMDISUBWINDOW_H
43 #define QMDISUBWINDOW_H
44 
45 #include <QtGui/qwidget.h>
46 
48 
50 
51 QT_MODULE(Gui)
52 
53 #ifndef QT_NO_MDIAREA
54 
55 class QMenu;
56 class QMdiArea;
57 
58 namespace QMdi { class ControlContainer; }
59 class QMdiSubWindowPrivate;
60 class Q_GUI_EXPORT QMdiSubWindow : public QWidget
61 {
62  Q_OBJECT
63  Q_PROPERTY(int keyboardSingleStep READ keyboardSingleStep WRITE setKeyboardSingleStep)
64  Q_PROPERTY(int keyboardPageStep READ keyboardPageStep WRITE setKeyboardPageStep)
65 public:
67  AllowOutsideAreaHorizontally = 0x1, // internal
68  AllowOutsideAreaVertically = 0x2, // internal
69  RubberBandResize = 0x4,
70  RubberBandMove = 0x8
71  };
72  Q_DECLARE_FLAGS(SubWindowOptions, SubWindowOption)
73 
74  QMdiSubWindow(QWidget *parent = 0, Qt::WindowFlags flags = 0);
75  ~QMdiSubWindow();
76 
77  QSize sizeHint() const;
78  QSize minimumSizeHint() const;
79 
80  void setWidget(QWidget *widget);
81  QWidget *widget() const;
82 
83  QWidget *maximizedButtonsWidget() const; // internal
84  QWidget *maximizedSystemMenuIconWidget() const; // internal
85 
86  bool isShaded() const;
87 
88  void setOption(SubWindowOption option, bool on = true);
89  bool testOption(SubWindowOption) const;
90 
91  void setKeyboardSingleStep(int step);
92  int keyboardSingleStep() const;
93 
94  void setKeyboardPageStep(int step);
95  int keyboardPageStep() const;
96 
97 #ifndef QT_NO_MENU
98  void setSystemMenu(QMenu *systemMenu);
99  QMenu *systemMenu() const;
100 #endif
101 
102  QMdiArea *mdiArea() const;
103 
104 Q_SIGNALS:
105  void windowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState);
106  void aboutToActivate();
107 
108 public Q_SLOTS:
109 #ifndef QT_NO_MENU
110  void showSystemMenu();
111 #endif
112  void showShaded();
113 
114 protected:
115  bool eventFilter(QObject *object, QEvent *event);
116  bool event(QEvent *event);
117  void showEvent(QShowEvent *showEvent);
118  void hideEvent(QHideEvent *hideEvent);
119  void changeEvent(QEvent *changeEvent);
120  void closeEvent(QCloseEvent *closeEvent);
121  void leaveEvent(QEvent *leaveEvent);
122  void resizeEvent(QResizeEvent *resizeEvent);
123  void timerEvent(QTimerEvent *timerEvent);
124  void moveEvent(QMoveEvent *moveEvent);
125  void paintEvent(QPaintEvent *paintEvent);
126  void mousePressEvent(QMouseEvent *mouseEvent);
127  void mouseDoubleClickEvent(QMouseEvent *mouseEvent);
128  void mouseReleaseEvent(QMouseEvent *mouseEvent);
129  void mouseMoveEvent(QMouseEvent *mouseEvent);
130  void keyPressEvent(QKeyEvent *keyEvent);
131 #ifndef QT_NO_CONTEXTMENU
132  void contextMenuEvent(QContextMenuEvent *contextMenuEvent);
133 #endif
134  void focusInEvent(QFocusEvent *focusInEvent);
135  void focusOutEvent(QFocusEvent *focusOutEvent);
136  void childEvent(QChildEvent *childEvent);
137 
138 private:
139  Q_DISABLE_COPY(QMdiSubWindow)
140  Q_DECLARE_PRIVATE(QMdiSubWindow)
141  Q_PRIVATE_SLOT(d_func(), void _q_updateStaysOnTopHint())
142  Q_PRIVATE_SLOT(d_func(), void _q_enterInteractiveMode())
143  Q_PRIVATE_SLOT(d_func(), void _q_processFocusChanged(QWidget *, QWidget *))
144  friend class QMdiAreaPrivate;
145 #ifndef QT_NO_TABBAR
146  friend class QMdiAreaTabBar;
147 #endif
148  friend class QMdi::ControlContainer;
149 };
150 
151 Q_DECLARE_OPERATORS_FOR_FLAGS(QMdiSubWindow::SubWindowOptions)
152 
154 
156 
157 #endif // QT_NO_MDIAREA
158 
159 #endif // QMDISUBWINDOW_H
virtual bool eventFilter(QObject *, QEvent *)
bool event(QEvent *)
#define QT_END_NAMESPACE
Definition: qglobal.h:128
#define Q_PROPERTY(text)
Definition: qobjectdefs.h:80
#define QT_BEGIN_HEADER
Definition: qglobal.h:141
virtual void contextMenuEvent(QContextMenuEvent *)
virtual void focusInEvent(QFocusEvent *)
virtual void mouseMoveEvent(QMouseEvent *)
virtual void focusOutEvent(QFocusEvent *)
virtual void keyPressEvent(QKeyEvent *)
Definition: qnamespace.h:54
#define Q_PRIVATE_SLOT(d, signature)
Definition: qobjectdefs.h:73
virtual void resizeEvent(QResizeEvent *)
virtual void closeEvent(QCloseEvent *)
#define Q_SLOTS
Definition: qobjectdefs.h:71
#define Q_SIGNALS
Definition: qobjectdefs.h:72
virtual void timerEvent(QTimerEvent *)
#define QT_BEGIN_NAMESPACE
Definition: qglobal.h:127
virtual void mouseReleaseEvent(QMouseEvent *)
virtual void mouseDoubleClickEvent(QMouseEvent *)
Definition: qmenu.h:72
#define Q_OBJECT
Definition: qobjectdefs.h:157
virtual void showEvent(QShowEvent *)
Definition: qsize.h:53
virtual void paintEvent(QPaintEvent *)
virtual void moveEvent(QMoveEvent *)
virtual void hideEvent(QHideEvent *)
virtual void mousePressEvent(QMouseEvent *)
#define QT_END_HEADER
Definition: qglobal.h:142
virtual void childEvent(QChildEvent *)
virtual void leaveEvent(QEvent *)
virtual void changeEvent(QEvent *)