Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qwaylandxdgshell.h
Go to the documentation of this file.
1// Copyright (C) 2018 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QWAYLANDXDGSHELL_H
5#define QWAYLANDXDGSHELL_H
6
7#include <QtWaylandCompositor/QWaylandCompositorExtension>
8#include <QtWaylandCompositor/QWaylandResource>
9#include <QtWaylandCompositor/QWaylandShell>
10#include <QtWaylandCompositor/QWaylandShellSurface>
11#if QT_CONFIG(wayland_compositor_quick)
12#include <QtWaylandCompositor/qwaylandquickchildren.h>
13#endif
14
15#include <QtCore/QRect>
16
17struct wl_resource;
18
20
21class QWaylandClient;
22class QWaylandOutput;
23class QWaylandSeat;
24class QWaylandSurface;
34
35class Q_WAYLANDCOMPOSITOR_EXPORT QWaylandXdgShell : public QWaylandShellTemplate<QWaylandXdgShell>
36{
38 Q_DECLARE_PRIVATE(QWaylandXdgShell)
39public:
40 explicit QWaylandXdgShell();
42
43 void initialize() override;
44
45 static const struct wl_interface *interface();
47
48public Q_SLOTS:
49 uint ping(QWaylandClient *client);
50
55 void pong(uint serial);
56
57private Q_SLOTS:
58 void handleSeatChanged(QWaylandSeat *newSeat, QWaylandSeat *oldSeat);
59 void handleFocusChanged(QWaylandSurface *newSurface, QWaylandSurface *oldSurface);
60};
61
62class Q_WAYLANDCOMPOSITOR_EXPORT QWaylandXdgSurface : public QWaylandShellSurfaceTemplate<QWaylandXdgSurface>
63{
65 Q_DECLARE_PRIVATE(QWaylandXdgSurface)
66#if QT_CONFIG(wayland_compositor_quick)
68#endif
69 Q_PROPERTY(QWaylandXdgShell *shell READ shell NOTIFY shellChanged)
70 Q_PROPERTY(QWaylandSurface *surface READ surface NOTIFY surfaceChanged)
71 Q_PROPERTY(QWaylandXdgToplevel *toplevel READ toplevel NOTIFY toplevelCreated)
72 Q_PROPERTY(QWaylandXdgPopup *popup READ popup NOTIFY popupCreated)
73 Q_PROPERTY(QRect windowGeometry READ windowGeometry NOTIFY windowGeometryChanged)
74 Q_MOC_INCLUDE("qwaylandsurface.h")
75
76public:
79
80 Q_INVOKABLE void initialize(QWaylandXdgShell* xdgShell, QWaylandSurface *surface, const QWaylandResource &resource);
81
82 Qt::WindowType windowType() const override;
83
84 QWaylandXdgShell *shell() const;
85 QWaylandSurface *surface() const;
86 QWaylandXdgToplevel *toplevel() const;
87 QWaylandXdgPopup *popup() const;
88 QRect windowGeometry() const;
89
90 static const struct wl_interface *interface();
92 static QWaylandXdgSurface *fromResource(::wl_resource *resource);
93
94#if QT_CONFIG(wayland_compositor_quick)
96#endif
97
104
105private:
106 void initialize() override;
107
108private Q_SLOTS:
109 void handleSurfaceSizeChanged();
110 void handleBufferScaleChanged();
111};
112
113class Q_WAYLANDCOMPOSITOR_EXPORT QWaylandXdgToplevel : public QObject
114{
116 Q_DECLARE_PRIVATE(QWaylandXdgToplevel)
117 Q_PROPERTY(QWaylandXdgSurface *xdgSurface READ xdgSurface CONSTANT)
118 Q_PROPERTY(QWaylandXdgToplevel *parentToplevel READ parentToplevel NOTIFY parentToplevelChanged)
119 Q_PROPERTY(QString title READ title NOTIFY titleChanged)
120 Q_PROPERTY(QString appId READ appId NOTIFY appIdChanged)
121 Q_PROPERTY(QSize maxSize READ maxSize NOTIFY maxSizeChanged)
122 Q_PROPERTY(QSize minSize READ minSize NOTIFY minSizeChanged)
123 Q_PROPERTY(QList<int> states READ statesAsInts NOTIFY statesChanged)
124 Q_PROPERTY(bool maximized READ maximized NOTIFY maximizedChanged)
125 Q_PROPERTY(bool fullscreen READ fullscreen NOTIFY fullscreenChanged)
126 Q_PROPERTY(bool resizing READ resizing NOTIFY resizingChanged)
127 Q_PROPERTY(bool activated READ activated NOTIFY activatedChanged)
128 Q_PROPERTY(bool modal READ modal NOTIFY modalChanged FINAL REVISION(6,8))
129 Q_PROPERTY(enum DecorationMode decorationMode READ decorationMode NOTIFY decorationModeChanged)
130
131public:
132 enum State : uint {
133 MaximizedState = 1,
134 FullscreenState = 2,
135 ResizingState = 3,
136 ActivatedState = 4
137 };
139
141 ClientSideDecoration = 1,
142 ServerSideDecoration = 2,
143 };
144 Q_ENUM(DecorationMode)
145
146 explicit QWaylandXdgToplevel(QWaylandXdgSurface *xdgSurface, QWaylandResource &resource);
147 ~QWaylandXdgToplevel() override;
148
149 QWaylandXdgSurface *xdgSurface() const;
150 QWaylandXdgToplevel *parentToplevel() const;
151
152 QString title() const;
153 QString appId() const;
154 QSize maxSize() const;
155 QSize minSize() const;
156 QList<QWaylandXdgToplevel::State> states() const;
157 bool maximized() const;
158 bool fullscreen() const;
159 bool resizing() const;
160 bool activated() const;
161 DecorationMode decorationMode() const;
162
163 Q_INVOKABLE QSize sizeForResize(const QSizeF &size, const QPointF &delta, Qt::Edges edges) const;
164 uint sendConfigure(const QSize &size, const QList<State> &states);
165 Q_INVOKABLE uint sendConfigure(const QSize &size, const QList<int> &states);
166 Q_INVOKABLE void sendClose();
167 Q_INVOKABLE uint sendMaximized(const QSize &size);
168 Q_INVOKABLE uint sendUnmaximized(const QSize &size = QSize(0, 0));
169 Q_INVOKABLE uint sendFullscreen(const QSize &size);
170 Q_INVOKABLE uint sendResizing(const QSize &maxSize);
171
172 static QWaylandSurfaceRole *role();
173 static QWaylandXdgToplevel *fromResource(::wl_resource *resource);
174
175 bool modal() const;
176
184 void startResize(QWaylandSeat *seat, Qt::Edges edges);
190
191 void showWindowMenu(QWaylandSeat *seat, const QPoint &localSurfacePosition);
197
199
201
202private:
203 QList<int> statesAsInts() const;
204 void setModal(bool newModal);
206};
207
208class Q_WAYLANDCOMPOSITOR_EXPORT QWaylandXdgPopup : public QObject
209{
211 Q_DECLARE_PRIVATE(QWaylandXdgPopup)
212 Q_PROPERTY(QWaylandXdgSurface *xdgSurface READ xdgSurface CONSTANT)
213 Q_PROPERTY(QWaylandXdgSurface *parentXdgSurface READ parentXdgSurface CONSTANT)
214 Q_PROPERTY(QRect configuredGeometry READ configuredGeometry NOTIFY configuredGeometryChanged)
215
216 // Positioner properties
217 Q_PROPERTY(QRect anchorRect READ anchorRect CONSTANT)
218 Q_PROPERTY(Qt::Edges anchorEdges READ anchorEdges CONSTANT)
219 Q_PROPERTY(Qt::Edges gravityEdges READ gravityEdges CONSTANT)
220 Q_PROPERTY(Qt::Orientations slideConstraints READ slideConstraints CONSTANT)
221 Q_PROPERTY(Qt::Orientations flipConstraints READ flipConstraints CONSTANT)
222 Q_PROPERTY(Qt::Orientations resizeConstraints READ resizeConstraints CONSTANT)
224 Q_PROPERTY(QSize positionerSize READ positionerSize CONSTANT)
225 Q_PROPERTY(QPoint unconstrainedPosition READ unconstrainedPosition CONSTANT)
226public:
227 QWaylandXdgSurface *xdgSurface() const;
228 QWaylandXdgSurface *parentXdgSurface() const;
229 QRect configuredGeometry() const;
230
231 // Positioner properties
232 QRect anchorRect() const;
233 Qt::Edges anchorEdges() const ;
234 Qt::Edges gravityEdges() const ;
235 Qt::Orientations slideConstraints() const;
236 Qt::Orientations flipConstraints() const;
237 Qt::Orientations resizeConstraints() const;
238 QPoint offset() const;
239 QSize positionerSize() const;
240 QPoint unconstrainedPosition() const;
241
242 Q_INVOKABLE uint sendConfigure(const QRect &geometry);
243 Q_REVISION(1, 14) Q_INVOKABLE void sendPopupDone();
244
245 static QWaylandSurfaceRole *role();
246
248 void configuredGeometryChanged();
249
250private:
251 explicit QWaylandXdgPopup(QWaylandXdgSurface *xdgSurface, QWaylandXdgSurface *parentXdgSurface,
252 QWaylandXdgPositioner *positioner, QWaylandResource &resource);
254};
255
257
258#endif // QWAYLANDXDGSHELL_H
\inmodule QtCore
Definition qbytearray.h:57
Definition qlist.h:75
\inmodule QtCore
Definition qobject.h:103
\inmodule QtCore\reentrant
Definition qpoint.h:217
\inmodule QtCore\reentrant
Definition qpoint.h:25
\inmodule QtCore\reentrant
Definition qrect.h:30
\inmodule QtCore
Definition qsize.h:208
\inmodule QtCore
Definition qsize.h:25
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\qmltype WaylandClient \instantiates QWaylandClient \inqmlmodule QtWayland.Compositor
\qmltype WaylandCompositor \instantiates QWaylandCompositor \inqmlmodule QtWayland....
\qmltype WaylandOutput \instantiates QWaylandOutput \inqmlmodule QtWayland.Compositor
\qmltype ShellSurfaceItem \instantiates QWaylandQuickShellSurfaceItem \inherits WaylandQuickItem \inq...
\inmodule QtWaylandCompositor
\qmltype WaylandSeat \instantiates QWaylandSeat \inqmlmodule QtWayland.Compositor
\inmodule QtWaylandCompositor
\inmodule QtWaylandCompositor
\qmltype WaylandSurface \instantiates QWaylandSurface \inqmlmodule QtWayland.Compositor
\qmltype XdgPopup \instantiates QWaylandXdgPopup \inqmlmodule QtWayland.Compositor....
\qmltype XdgShell \instantiates QWaylandXdgShell \inqmlmodule QtWayland.Compositor....
void xdgSurfaceCreated(QWaylandXdgSurface *xdgSurface)
\qmlsignal XdgShell::xdgSurfaceCreated(XdgSurface xdgSurface)
void toplevelCreated(QWaylandXdgToplevel *toplevel, QWaylandXdgSurface *xdgSurface)
\qmlsignal XdgShell::toplevelCreated(XdgToplevel toplevel, XdgSurface xdgSurface)
void popupCreated(QWaylandXdgPopup *popup, QWaylandXdgSurface *xdgSurface)
\qmlsignal XdgShell::popupCreated(XdgPopup popup, XdgSurface xdgSurface)
void pong(uint serial)
\qmlsignal XdgShell::pong(int serial)
\qmltype XdgSurface \instantiates QWaylandXdgSurface \inqmlmodule QtWayland.Compositor....
void windowGeometryChanged()
\qmltype XdgToplevel \instantiates QWaylandXdgToplevel \inqmlmodule QtWayland.Compositor....
void setFullscreen(QWaylandOutput *output)
uint sendConfigure(const QSize &size, const QList< State > &states)
DecorationMode
This enum type is used to specify the window decoration mode for toplevel windows.
void parentToplevelChanged()
void startMove(QWaylandSeat *seat)
void showWindowMenu(QWaylandSeat *seat, const QPoint &localSurfacePosition)
void decorationModeChanged()
void startResize(QWaylandSeat *seat, Qt::Edges edges)
Combined button and popup list for selecting options.
Definition qcompare.h:63
static bool initialize()
Definition qctf.cpp:94
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char * interface
static QOpenGLCompositor * compositor
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLuint GLintptr offset
GLfloat GLfloat GLfloat GLfloat h
GLuint * states
QAnyStringView interfaceName(const Interface &iface)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_REVISION(...)
#define Q_INVOKABLE
#define Q_SLOTS
#define Q_MOC_INCLUDE(...)
#define Q_SIGNALS
unsigned int uint
Definition qtypes.h:34
QT_BEGIN_NAMESPACE typedef uchar * output
#define Q_WAYLAND_COMPOSITOR_DECLARE_QUICK_CHILDREN(className)
#define explicit
QString title
[35]
QGraphicsItem * item