1 #ifndef QWAYLANDDECORATION_H
2 #define QWAYLANDDECORATION_H
4 #include <QtCore/QMargins>
5 #include <QtCore/QPointF>
6 #include <QtGui/QGuiApplication>
7 #include <QtGui/QCursor>
8 #include <QtGui/QImage>
9 #include <QtGui/QStaticText>
11 #include <wayland-client.h>
13 #include <QtCore/QDebug>
20 class QWaylandShmBackingStore;
21 class QWaylandInputDevice;
23 class QWaylandDecoration
26 QWaylandDecoration(QWindow *window, QWaylandShmBackingStore *backing_store);
27 ~QWaylandDecoration();
28 void paintDecoration();
29 void handleMouse(QWaylandInputDevice *inputDevice, const QPointF &local, const QPointF &global,Qt::MouseButtons b,Qt::KeyboardModifiers mods);
30 void restoreMouseCursor();
31 bool inMouseButtonPressedState() const;
33 void startResize(QWaylandInputDevice *inputDevice,enum wl_shell_surface_resize resize, Qt::MouseButtons buttons);
34 void startMove(QWaylandInputDevice *inputDevice, Qt::MouseButtons buttons);
35 QMargins margins() const;
37 void overrideCursor(Qt::CursorShape shape);
39 void processMouseTop(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b,Qt::KeyboardModifiers mods);
40 void processMouseBottom(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b,Qt::KeyboardModifiers mods);
41 void processMouseLeft(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b,Qt::KeyboardModifiers mods);
42 void processMouseRight(QWaylandInputDevice *inputDevice, const QPointF &local, Qt::MouseButtons b,Qt::KeyboardModifiers mods);
44 bool isLeftClicked(Qt::MouseButtons newMouseButtonState);
45 bool isLeftReleased(Qt::MouseButtons newMouseButtonState);
48 QWaylandWindow *m_wayland_window;
49 QWaylandShmBackingStore *m_backing_store;
53 Qt::CursorShape m_cursorShape;
54 Qt::MouseButtons m_mouseButtons;
56 QStaticText m_windowTitle;
61 inline QMargins QWaylandDecoration::margins() const
66 inline void QWaylandDecoration::overrideCursor(Qt::CursorShape shape)
69 if (m_cursorShape != shape) {
70 QGuiApplication::changeOverrideCursor(QCursor(shape));
71 m_cursorShape = shape;
74 QGuiApplication::setOverrideCursor(QCursor(shape));
75 m_hasSetCursor = true;
76 m_cursorShape = shape;
80 #endif // QWAYLANDDECORATION_H