8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qwidget.h>
11QT_REQUIRE_CONFIG(mdiarea);
19class QMdiSubWindowPrivate;
23 Q_PROPERTY(
int keyboardSingleStep READ keyboardSingleStep WRITE setKeyboardSingleStep)
24 Q_PROPERTY(
int keyboardPageStep READ keyboardPageStep WRITE setKeyboardPageStep)
26 enum SubWindowOption {
27 AllowOutsideAreaHorizontally = 0x1,
28 AllowOutsideAreaVertically = 0x2,
29 RubberBandResize = 0x4,
32 Q_DECLARE_FLAGS(SubWindowOptions, SubWindowOption)
34 QMdiSubWindow(QWidget *parent =
nullptr, Qt::WindowFlags flags = Qt::WindowFlags());
37 QSize sizeHint()
const override;
38 QSize minimumSizeHint()
const override;
40 void setWidget(QWidget *widget);
41 QWidget *widget()
const;
43 QWidget *maximizedButtonsWidget()
const;
44 QWidget *maximizedSystemMenuIconWidget()
const;
46 bool isShaded()
const;
48 void setOption(SubWindowOption option,
bool on =
true);
49 bool testOption(SubWindowOption)
const;
51 void setKeyboardSingleStep(
int step);
52 int keyboardSingleStep()
const;
54 void setKeyboardPageStep(
int step);
55 int keyboardPageStep()
const;
58 void setSystemMenu(QMenu *systemMenu);
59 QMenu *systemMenu()
const;
62 QMdiArea *mdiArea()
const;
65 void windowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState);
66 void aboutToActivate();
70 void showSystemMenu();
75 bool eventFilter(QObject *object, QEvent *event) override;
76 bool event(QEvent *event) override;
77 void showEvent(QShowEvent *showEvent) override;
78 void hideEvent(QHideEvent *hideEvent) override;
79 void changeEvent(QEvent *changeEvent) override;
80 void closeEvent(QCloseEvent *closeEvent) override;
81 void leaveEvent(QEvent *leaveEvent) override;
82 void resizeEvent(QResizeEvent *resizeEvent) override;
83 void timerEvent(QTimerEvent *timerEvent) override;
84 void moveEvent(QMoveEvent *moveEvent) override;
85 void paintEvent(QPaintEvent *paintEvent) override;
86 void mousePressEvent(QMouseEvent *mouseEvent) override;
87 void mouseDoubleClickEvent(QMouseEvent *mouseEvent) override;
88 void mouseReleaseEvent(QMouseEvent *mouseEvent) override;
89 void mouseMoveEvent(QMouseEvent *mouseEvent) override;
90 void keyPressEvent(QKeyEvent *keyEvent) override;
91#ifndef QT_NO_CONTEXTMENU
92 void contextMenuEvent(QContextMenuEvent *contextMenuEvent) override;
94 void focusInEvent(QFocusEvent *focusInEvent) override;
95 void focusOutEvent(QFocusEvent *focusOutEvent) override;
96 void childEvent(QChildEvent *childEvent) override;
99 Q_DISABLE_COPY(QMdiSubWindow)
100 Q_DECLARE_PRIVATE(QMdiSubWindow)
101 Q_PRIVATE_SLOT(d_func(),
void _q_updateStaysOnTopHint())
102 Q_PRIVATE_SLOT(d_func(),
void _q_enterInteractiveMode())
103 Q_PRIVATE_SLOT(d_func(),
void _q_processFocusChanged(QWidget *, QWidget *))
104 friend class QMdiAreaPrivate;
105 friend class QMdiArea;
107 friend class QMdiAreaTabBar;
109 friend class QMdi::ControlContainer;
112Q_DECLARE_OPERATORS_FOR_FLAGS(QMdiSubWindow::SubWindowOptions)
void internalRaise(QMdiSubWindow *child) const
void place(QMdi::Placer *placer, QMdiSubWindow *child)
void resetActiveWindow(QMdiSubWindow *child=nullptr)
QMdi::Rearranger * cascader
QPointer< QMdiSubWindow > aboutToBecomeActive
QMdi::Rearranger * regularTiler
void activateCurrentWindow()
QList< int > indicesToActivatedChildren
QBasicTimer tabToPreviousTimer
bool scrollBarsEnabled() const
void appendChild(QMdiSubWindow *child)
void activateHighlightedWindow()
void emitWindowActivated(QMdiSubWindow *child)
QMdi::Rearranger * iconTiler
QPointer< QMdiSubWindow > active
QList< QMdiSubWindow * > subWindowList(QMdiArea::WindowOrder, bool reversed=false) const
QRect resizeToMinimumTileSize(const QSize &minSubWindowSize, int subWindowCount)
QMdiArea::WindowOrder activationOrder
bool isExplicitlyDeactivated(QMdiSubWindow *subWindow) const
void arrangeMinimizedSubWindows()
bool lastWindowAboutToBeDestroyed() const
bool ignoreGeometryChange
void activateWindow(QMdiSubWindow *child)
void highlightNextSubWindow(int increaseFactor)
QList< QMdi::Rearranger * > pendingRearrangements
QMdiArea::AreaOptions options
bool tileCalledFromResizeEvent
void disconnectSubWindow(QObject *subWindow)
void startTabToPreviousTimer()
void _q_moveTab(int from, int to)
bool windowStaysOnTop(QMdiSubWindow *subWindow) const
QList< QPointer< QMdiSubWindow > > pendingPlacements
void setActive(QMdiSubWindow *subWindow, bool active=true, bool changeFocus=true) const
bool ignoreWindowStateChange
void _q_currentTabChanged(int index)
QList< QPointer< QMdiSubWindow > > childWindows
void _q_deactivateAllWindows(QMdiSubWindow *aboutToActivate=nullptr)
void scrollBarPolicyChanged(Qt::Orientation, Qt::ScrollBarPolicy) override
bool showActiveWindowMaximized
QMdiArea::ViewMode viewMode
int indexToPreviousWindow
void setViewMode(QMdiArea::ViewMode mode)
void updateActiveWindow(int removedIndex, bool activeRemoved)
void rearrange(QMdi::Rearranger *rearranger)
void setChildActivationEnabled(bool enable=true, bool onlyNextActivationEvent=false) const
void _q_closeTab(int index)
void _q_processWindowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState)
QMdiSubWindow * nextVisibleSubWindow(int increaseFactor, QMdiArea::WindowOrder, int removed=-1, int fromIndex=-1) const
The QMdiArea widget provides an area in which MDI windows are displayed.
The QMdiSubWindow class provides a subwindow class for QMdiArea.
Type type() const override
void rearrange(QList< QWidget * > &widgets, const QRect &domain) const override
QPoint place(const QSize &size, const QList< QRect > &rects, const QRect &domain) const override
virtual QPoint place(const QSize &size, const QList< QRect > &rects, const QRect &domain) const =0
virtual void rearrange(QList< QWidget * > &widgets, const QRect &domain) const =0
virtual Type type() const =0
void rearrange(QList< QWidget * > &widgets, const QRect &domain) const override
Type type() const override
void rearrange(QList< QWidget * > &widgets, const QRect &domain) const override
Type type() const override
static bool sanityCheck(const QList< QWidget * > &widgets, const int index, const char *where)
static QString tabTextFor(QMdiSubWindow *subWindow)
static bool sanityCheck(const QMdiSubWindow *const child, const char *where)
static QMdiArea * mdiAreaParent(QWidget *widget)
static bool useScrollBar(const QRect &childrenRect, const QSize &maxViewportSize, Qt::Orientation orientation)
static void setIndex(int *index, int candidate, int min, int max, bool isIncreasing)
QT_REQUIRE_CONFIG(mdiarea)
QString qt_setWindowTitle_helperHelper(const QString &, const QWidget *)
Returns a modified window title with the [*] place holder replaced according to the rules described i...