summaryrefslogtreecommitdiffstats
path: root/src/gui/widgets/qmdisubwindow_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/widgets/qmdisubwindow_p.h')
-rw-r--r--src/gui/widgets/qmdisubwindow_p.h348
1 files changed, 0 insertions, 348 deletions
diff --git a/src/gui/widgets/qmdisubwindow_p.h b/src/gui/widgets/qmdisubwindow_p.h
deleted file mode 100644
index e5b9d8091f..0000000000
--- a/src/gui/widgets/qmdisubwindow_p.h
+++ /dev/null
@@ -1,348 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QMDISUBWINDOW_P_H
-#define QMDISUBWINDOW_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qmdisubwindow.h"
-
-#ifndef QT_NO_MDIAREA
-
-#include <QStyle>
-#include <QStyleOptionTitleBar>
-#include <QMenuBar>
-#include <QSizeGrip>
-#include <QPointer>
-#include <QDebug>
-#include <private/qwidget_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QVBoxLayout;
-class QMouseEvent;
-
-namespace QMdi {
-template<typename T>
-class ControlElement : public T
-{
-public:
- ControlElement(QMdiSubWindow *child) : T(child, 0)
- {
- Q_ASSERT(child);
- mdiChild = child;
- }
-
- void *qt_metacast(const char *classname)
- {
- if (classname && strcmp(classname, "ControlElement") == 0)
- return this;
- return 0;
- }
-
- QPointer<QMdiSubWindow> mdiChild;
-};
-
-class ControlContainer : public QObject
-{
-public:
- ControlContainer(QMdiSubWindow *mdiChild);
- ~ControlContainer();
-
-#ifndef QT_NO_MENUBAR
- void showButtonsInMenuBar(QMenuBar *menuBar);
- void removeButtonsFromMenuBar(QMenuBar *menuBar = 0);
- QMenuBar *menuBar() const { return m_menuBar; }
-#endif
- void updateWindowIcon(const QIcon &windowIcon);
- QWidget *controllerWidget() const { return m_controllerWidget; }
- QWidget *systemMenuLabel() const { return m_menuLabel; }
-
-private:
- QPointer<QWidget> previousLeft;
- QPointer<QWidget> previousRight;
-#ifndef QT_NO_MENUBAR
- QPointer<QMenuBar> m_menuBar;
-#endif
- QPointer<QWidget> m_controllerWidget;
- QPointer<QWidget> m_menuLabel;
- QPointer<QMdiSubWindow> mdiChild;
-};
-} // namespace QMdi
-
-class QMdiSubWindowPrivate : public QWidgetPrivate
-{
- Q_DECLARE_PUBLIC(QMdiSubWindow)
-public:
- // Enums and typedefs.
- enum Operation {
- None,
- Move,
- TopResize,
- BottomResize,
- LeftResize,
- RightResize,
- TopLeftResize,
- TopRightResize,
- BottomLeftResize,
- BottomRightResize
- };
-
- enum ChangeFlag {
- HMove = 0x01,
- VMove = 0x02,
- HResize = 0x04,
- VResize = 0x08,
- HResizeReverse = 0x10,
- VResizeReverse = 0x20
- };
-
- enum WindowStateAction {
- RestoreAction,
- MoveAction,
- ResizeAction,
- MinimizeAction,
- MaximizeAction,
- StayOnTopAction,
- CloseAction,
- /* Add new states _above_ this line! */
- NumWindowStateActions
- };
-
- struct OperationInfo {
- uint changeFlags;
- Qt::CursorShape cursorShape;
- QRegion region;
- bool hover;
- OperationInfo(uint changeFlags, Qt::CursorShape cursorShape, bool hover = true)
- : changeFlags(changeFlags),
- cursorShape(cursorShape),
- hover(hover)
- {}
- };
-
- typedef QMap<Operation, OperationInfo> OperationInfoMap;
-
- QMdiSubWindowPrivate();
-
- // Variables.
- QPointer<QWidget> baseWidget;
- QPointer<QWidget> restoreFocusWidget;
- QPointer<QMdi::ControlContainer> controlContainer;
-#ifndef QT_NO_SIZEGRIP
- QPointer<QSizeGrip> sizeGrip;
-#endif
-#ifndef QT_NO_RUBBERBAND
- QRubberBand *rubberBand;
-#endif
- QPoint mousePressPosition;
- QRect oldGeometry;
- QSize internalMinimumSize;
- QSize userMinimumSize;
- QSize restoreSize;
- bool resizeEnabled;
- bool moveEnabled;
- bool isInInteractiveMode;
-#ifndef QT_NO_RUBBERBAND
- bool isInRubberBandMode;
-#endif
- bool isShadeMode;
- bool ignoreWindowTitleChange;
- bool ignoreNextActivationEvent;
- bool activationEnabled;
- bool isShadeRequestFromMinimizeMode;
- bool isMaximizeMode;
- bool isWidgetHiddenByUs;
- bool isActive;
- bool isExplicitlyDeactivated;
- int keyboardSingleStep;
- int keyboardPageStep;
- int resizeTimerId;
- Operation currentOperation;
- QStyle::SubControl hoveredSubControl;
- QStyle::SubControl activeSubControl;
- Qt::FocusReason focusInReason;
- OperationInfoMap operationMap;
- QPointer<QMenu> systemMenu;
-#ifndef QT_NO_ACTIONS
- QPointer<QAction> actions[NumWindowStateActions];
-#endif
- QMdiSubWindow::SubWindowOptions options;
- QString lastChildWindowTitle;
- QPalette titleBarPalette;
- QString windowTitle;
- QFont font;
- QIcon menuIcon;
- QStyleOptionTitleBar cachedStyleOptions;
- QString originalTitle;
-
- // Slots.
- void _q_updateStaysOnTopHint();
- void _q_enterInteractiveMode();
- void _q_processFocusChanged(QWidget *old, QWidget *now);
-
- // Functions.
- void leaveInteractiveMode();
- void removeBaseWidget();
- void initOperationMap();
-#ifndef QT_NO_MENU
- void createSystemMenu();
-#endif
- void updateCursor();
- void updateDirtyRegions();
- void updateGeometryConstraints();
- void updateMask();
- void setNewGeometry(const QPoint &pos);
- void setMinimizeMode();
- void setNormalMode();
- void setMaximizeMode();
- void setActive(bool activate, bool changeFocus = true);
- void processClickedSubControl();
- QRegion getRegion(Operation operation) const;
- Operation getOperation(const QPoint &pos) const;
- QStyleOptionTitleBar titleBarOptions() const;
- void ensureWindowState(Qt::WindowState state);
- int titleBarHeight(const QStyleOptionTitleBar &options) const;
- void sizeParameters(int *margin, int *minWidth) const;
- bool drawTitleBarWhenMaximized() const;
-#ifndef QT_NO_MENUBAR
- QMenuBar *menuBar() const;
- void showButtonsInMenuBar(QMenuBar *menuBar);
- void removeButtonsFromMenuBar();
-#endif
- void updateWindowTitle(bool requestFromChild);
-#ifndef QT_NO_RUBBERBAND
- void enterRubberBandMode();
- void leaveRubberBandMode();
-#endif
- QPalette desktopPalette() const;
- void updateActions();
- void setFocusWidget();
- void restoreFocus();
- void setWindowFlags(Qt::WindowFlags windowFlags);
- void setVisible(WindowStateAction, bool visible = true);
-#ifndef QT_NO_ACTION
- void setEnabled(WindowStateAction, bool enable = true);
-#ifndef QT_NO_MENU
- void addToSystemMenu(WindowStateAction, const QString &text, const char *slot);
-#endif
-#endif // QT_NO_ACTION
- QSize iconSize() const;
-#ifndef QT_NO_SIZEGRIP
- void setSizeGrip(QSizeGrip *sizeGrip);
- void setSizeGripVisible(bool visible = true) const;
-#endif
- void updateInternalWindowTitle();
- QString originalWindowTitle();
- void setNewWindowTitle();
-
- inline int titleBarHeight() const
- {
- Q_Q(const QMdiSubWindow);
- if (!parent || q->windowFlags() & Qt::FramelessWindowHint
- || (q->isMaximized() && !drawTitleBarWhenMaximized())) {
- return 0;
- }
- QStyleOptionTitleBar options = titleBarOptions();
- int height = options.rect.height();
- if (hasBorder(options))
- height += q->isMinimized() ? 8 : 4;
- return height;
- }
-
- inline QStyle::SubControl getSubControl(const QPoint &pos) const
- {
- Q_Q(const QMdiSubWindow);
- QStyleOptionTitleBar titleBarOptions = this->titleBarOptions();
- return q->style()->hitTestComplexControl(QStyle::CC_TitleBar, &titleBarOptions, pos, q);
- }
-
- inline void setNewGeometry(QRect *geometry)
- {
- Q_Q(QMdiSubWindow);
- Q_ASSERT(parent);
- geometry->setSize(geometry->size().expandedTo(internalMinimumSize));
-#ifndef QT_NO_RUBBERBAND
- if (isInRubberBandMode)
- rubberBand->setGeometry(*geometry);
- else
-#endif
- q->setGeometry(*geometry);
- }
-
- inline bool hasBorder(const QStyleOptionTitleBar &options) const
- {
- Q_Q(const QMdiSubWindow);
- return !q->style()->styleHint(QStyle::SH_TitleBar_NoBorder, &options, q);
- }
-
- inline bool autoRaise() const
- {
- Q_Q(const QMdiSubWindow);
- return q->style()->styleHint(QStyle::SH_TitleBar_AutoRaise, 0, q);
- }
-
- inline bool isResizeOperation() const
- {
- return currentOperation != None && currentOperation != Move;
- }
-
- inline bool isMoveOperation() const
- {
- return currentOperation == Move;
- }
-};
-
-#endif // QT_NO_MDIAREA
-
-QT_END_NAMESPACE
-
-#endif // QMDISUBWINDOW_P_H