diff options
Diffstat (limited to 'src/plugins/platforms/wayland_common/qwaylandwindow.h')
-rw-r--r-- | src/plugins/platforms/wayland_common/qwaylandwindow.h | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/src/plugins/platforms/wayland_common/qwaylandwindow.h b/src/plugins/platforms/wayland_common/qwaylandwindow.h deleted file mode 100644 index e6d15c6c4..000000000 --- a/src/plugins/platforms/wayland_common/qwaylandwindow.h +++ /dev/null @@ -1,233 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the config.tests of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** 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, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QWAYLANDWINDOW_H -#define QWAYLANDWINDOW_H - -#include <QtCore/QWaitCondition> -#include <QtCore/QMutex> -#include <QtGui/QIcon> - -#include <qpa/qplatformwindow.h> - -#include "qwaylanddisplay.h" - -#include "qwayland-wayland.h" - -struct wl_egl_window; - -QT_BEGIN_NAMESPACE - -class QWaylandDisplay; -class QWaylandBuffer; -class QWaylandShellSurface; -class QWaylandExtendedSurface; -class QWaylandSubSurface; -class QWaylandDecoration; - -class QWaylandWindowConfigure -{ -public: - QWaylandWindowConfigure() - : width(0) - , height(0) - , edges(0) - { } - - void clear() - { width = height = edges = 0; } - - bool isEmpty() const - { return !height || !width; } - - int width; - int height; - uint32_t edges; -}; - -class QWaylandWindow : public QObject, public QPlatformWindow, public QtWayland::wl_surface -{ - Q_OBJECT -public: - enum WindowType { - Shm, - Egl - }; - - QWaylandWindow(QWindow *window); - ~QWaylandWindow(); - - virtual WindowType windowType() const = 0; - WId winId() const; - void setVisible(bool visible); - void setParent(const QPlatformWindow *parent); - - void setWindowTitle(const QString &title); - - inline QIcon windowIcon() const; - void setWindowIcon(const QIcon &icon); - - void setGeometry(const QRect &rect); - - void configure(uint32_t edges, int32_t width, int32_t height); - - using QtWayland::wl_surface::attach; - void attach(QWaylandBuffer *buffer, int x, int y); - void attachOffset(QWaylandBuffer *buffer); - QWaylandBuffer *attached() const; - QPoint attachOffset() const; - - using QtWayland::wl_surface::damage; - void damage(const QRect &rect); - - void waitForFrameSync(); - - QMargins frameMargins() const; - - static QWaylandWindow *fromWlSurface(::wl_surface *surface); - - QWaylandShellSurface *shellSurface() const; - QWaylandExtendedSurface *extendedWindow() const; - QWaylandSubSurface *subSurfaceWindow() const; - - void handleContentOrientationChange(Qt::ScreenOrientation orientation); - - void setWindowState(Qt::WindowState state); - void setWindowFlags(Qt::WindowFlags flags); - - void raise() Q_DECL_OVERRIDE; - void lower() Q_DECL_OVERRIDE; - - void requestActivateWindow() Q_DECL_OVERRIDE; - - QWaylandDecoration *decoration() const; - void setDecoration(QWaylandDecoration *decoration); - - - void handleMouse(QWaylandInputDevice *inputDevice, - ulong timestamp, - const QPointF & local, - const QPointF & global, - Qt::MouseButtons b, - Qt::KeyboardModifiers mods); - void handleMouseEnter(QWaylandInputDevice *inputDevice); - void handleMouseLeave(QWaylandInputDevice *inputDevice); - - bool createDecoration(); - - inline bool isMaximized() const { return mState == Qt::WindowMaximized; } - inline bool isFullscreen() const { return mState == Qt::WindowFullScreen; } - - void setMouseCursor(QWaylandInputDevice *device, Qt::CursorShape shape); - void restoreMouseCursor(QWaylandInputDevice *device); - - QWaylandWindow *transientParent() const; - - QMutex *resizeMutex() { return &mResizeLock; } - void doResize(); - void setCanResize(bool canResize); - - bool setMouseGrabEnabled(bool grab); - static QWaylandWindow *mouseGrab() { return mMouseGrab; } - -public slots: - void requestResize(); - -protected: - QWaylandScreen *mScreen; - QWaylandDisplay *mDisplay; - QWaylandShellSurface *mShellSurface; - QWaylandExtendedSurface *mExtendedWindow; - QWaylandSubSurface *mSubSurfaceWindow; - - QWaylandDecoration *mWindowDecoration; - bool mMouseEventsInContentArea; - Qt::MouseButtons mMousePressedInContentArea; - Qt::CursorShape m_cursorShape; - - QWaylandBuffer *mBuffer; - WId mWindowId; - bool mWaitingForFrameSync; - struct wl_callback *mFrameCallback; - QWaitCondition mFrameSyncWait; - - QMutex mResizeLock; - QWaylandWindowConfigure mConfigure; - bool mRequestResizeSent; - bool mCanResize; - - bool mSentInitialResize; - QPoint mOffset; - - QIcon mWindowIcon; - QWaylandInputDevice *mMouseDevice; - int mMouseSerial; - - Qt::WindowState mState; - -private: - void handleMouseEventWithDecoration(QWaylandInputDevice *inputDevice, - ulong timestamp, - const QPointF & local, - const QPointF & global, - Qt::MouseButtons b, - Qt::KeyboardModifiers mods); - - static const wl_callback_listener callbackListener; - static void frameCallback(void *data, struct wl_callback *wl_callback, uint32_t time); - - static QMutex mFrameSyncMutex; - static QWaylandWindow *mMouseGrab; -}; - -inline QIcon QWaylandWindow::windowIcon() const -{ - return mWindowIcon; -} - -inline QPoint QWaylandWindow::attachOffset() const -{ - return mOffset; -} - -QT_END_NAMESPACE - -#endif // QWAYLANDWINDOW_H |