Qt 4.8
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; }
61 {
62  Q_OBJECT
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:
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 *))
145 #ifndef QT_NO_TABBAR
146  friend class QMdiAreaTabBar;
147 #endif
149 };
150 
151 Q_DECLARE_OPERATORS_FOR_FLAGS(QMdiSubWindow::SubWindowOptions)
152 
154 
156 
157 #endif // QT_NO_MDIAREA
158 
159 #endif // QMDISUBWINDOW_H
The QKeyEvent class describes a key event.
Definition: qevent.h:224
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
EventRef event
QPointer< QWidget > widget
#define QT_MODULE(x)
Definition: qglobal.h:2783
static void keyEvent(KeyAction action, QWidget *widget, char ascii, Qt::KeyboardModifiers modifier=Qt::NoModifier, int delay=-1)
#define QT_BEGIN_HEADER
Definition: qglobal.h:136
#define Q_DECLARE_FLAGS(Flags, Enum)
The Q_DECLARE_FLAGS() macro expands to.
Definition: qglobal.h:2348
The QContextMenuEvent class contains parameters that describe a context menu event.
Definition: qevent.h:396
#define Q_GUI_EXPORT
Definition: qglobal.h:1450
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
#define Q_DISABLE_COPY(Class)
Disables the use of copy constructors and assignment operators for the given Class.
Definition: qglobal.h:2523
#define Q_PRIVATE_SLOT(d, signature)
Definition: qobjectdefs.h:73
#define Q_SLOTS
Definition: qobjectdefs.h:71
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
#define Q_SIGNALS
Definition: qobjectdefs.h:72
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
The QMoveEvent class contains event parameters for move events.
Definition: qevent.h:334
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
The Q_DECLARE_OPERATORS_FOR_FLAGS() macro declares global operator|() functions for Flags...
Definition: qglobal.h:2355
The QMdiArea widget provides an area in which MDI windows are displayed.
Definition: qmdiarea.h:59
The QHideEvent class provides an event which is sent after a widget is hidden.
Definition: qevent.h:388
The QResizeEvent class contains event parameters for resize events.
Definition: qevent.h:349
The QShowEvent class provides an event that is sent when a widget is shown.
Definition: qevent.h:380
#define Q_OBJECT
Definition: qobjectdefs.h:157
The QMouseEvent class contains parameters that describe a mouse event.
Definition: qevent.h:85
The QChildEvent class contains event parameters for child object events.
Definition: qcoreevent.h:353
The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus...
Definition: qmenu.h:72
The QTimerEvent class contains parameters that describe a timer event.
Definition: qcoreevent.h:341
static void mouseEvent(MouseAction action, QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers stateKey, QPoint pos, int delay=-1)
Definition: qtestmouse.h:71
int keyboardSingleStep
sets how far a widget should move or resize when using the keyboard arrow keys.
Definition: qmdisubwindow.h:63
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:53
#define Q_DECLARE_PRIVATE(Class)
Definition: qglobal.h:2467
#define class
The QPaintEvent class contains event parameters for paint events.
Definition: qevent.h:298
The QEvent class is the base class of all event classes.
Definition: qcoreevent.h:56
#define QT_END_HEADER
Definition: qglobal.h:137
SubWindowOption
This enum describes options that customize the behavior of QMdiSubWindow.
Definition: qmdisubwindow.h:66
The QCloseEvent class contains parameters that describe a close event.
Definition: qevent.h:364
The QMdiSubWindow class provides a subwindow class for QMdiArea.
Definition: qmdisubwindow.h:60
The QFocusEvent class contains event parameters for widget focus events.
Definition: qevent.h:275
int keyboardPageStep
sets how far a widget should move or resize when using the keyboard page keys.
Definition: qmdisubwindow.h:64