6 #include "xdgforeign_v2.h"
7 #include "event_queue.h"
8 #include "wayland_pointer_p.h"
9 #include "xdgforeign_p.h"
11 #include <wayland-xdg-foreign-unstable-v2-client-protocol.h>
19 class Q_DECL_HIDDEN XdgExporterUnstableV2::Private :
public XdgExporter::Private
24 XdgExported *exportTopLevelV2(Surface *surface,
QObject *parent)
override;
25 void setupV2(zxdg_exporter_v2 *arg)
override;
26 zxdg_exporter_v2 *exporterV2()
override;
29 void destroy()
override;
32 WaylandPointer<zxdg_exporter_v2, zxdg_exporter_v2_destroy> exporter;
35 XdgExporterUnstableV2::Private::Private()
36 : XdgExporter::Private()
40 zxdg_exporter_v2 *XdgExporterUnstableV2::Private::exporterV2()
50 void XdgExporterUnstableV2::Private::destroy()
55 bool XdgExporterUnstableV2::Private::isValid()
57 return exporter.isValid();
60 XdgExported *XdgExporterUnstableV2::Private::exportTopLevelV2(Surface *surface,
QObject *parent)
63 auto p =
new XdgExportedUnstableV2(parent);
64 auto w = zxdg_exporter_v2_export_toplevel(exporter, *surface);
72 XdgExporterUnstableV2::XdgExporterUnstableV2(
QObject *parent)
77 void XdgExporterUnstableV2::Private::setupV2(zxdg_exporter_v2 *arg)
84 XdgExporterUnstableV2::~XdgExporterUnstableV2()
88 class Q_DECL_HIDDEN XdgImporterUnstableV2::Private :
public XdgImporter::Private
93 XdgImported *importTopLevelV2(
const QString &handle,
QObject *parent)
override;
94 void setupV2(zxdg_importer_v2 *arg)
override;
95 zxdg_importer_v2 *importerV2()
override;
98 void destroy()
override;
99 bool isValid()
override;
101 WaylandPointer<zxdg_importer_v2, zxdg_importer_v2_destroy> importer;
102 EventQueue *queue =
nullptr;
105 XdgImporterUnstableV2::Private::Private()
106 : XdgImporter::Private()
110 zxdg_importer_v2 *XdgImporterUnstableV2::Private::importerV2()
120 void XdgImporterUnstableV2::Private::destroy()
125 bool XdgImporterUnstableV2::Private::isValid()
127 return importer.isValid();
130 XdgImported *XdgImporterUnstableV2::Private::importTopLevelV2(
const QString &handle,
QObject *parent)
133 auto p =
new XdgImportedUnstableV2(parent);
134 auto w = zxdg_importer_v2_import_toplevel(importer, handle.
toUtf8());
147 void XdgImporterUnstableV2::Private::setupV2(zxdg_importer_v2 *arg)
154 XdgImporterUnstableV2::~XdgImporterUnstableV2()
158 class Q_DECL_HIDDEN XdgExportedUnstableV2::Private :
public XdgExported::Private
161 Private(XdgExportedUnstableV2 *q);
163 void setupV2(zxdg_exported_v2 *arg)
override;
164 zxdg_exported_v2 *exportedV2()
override;
167 void destroy()
override;
168 bool isValid()
override;
170 WaylandPointer<zxdg_exported_v2, zxdg_exported_v2_destroy> exported;
173 static void handleCallback(
void *data, zxdg_exported_v2 *zxdg_exported_v2,
const char *handle);
175 static const zxdg_exported_v2_listener s_listener;
178 zxdg_exported_v2 *XdgExportedUnstableV2::Private::exportedV2()
188 void XdgExportedUnstableV2::Private::destroy()
193 bool XdgExportedUnstableV2::Private::isValid()
195 return exported.isValid();
198 const zxdg_exported_v2_listener XdgExportedUnstableV2::Private::s_listener = {handleCallback};
200 void XdgExportedUnstableV2::Private::handleCallback(
void *data, zxdg_exported_v2 *zxdg_exported_v2,
const char *handle)
202 auto p =
reinterpret_cast<XdgExportedUnstableV2::Private *
>(data);
203 Q_ASSERT(p->exported == zxdg_exported_v2);
209 XdgExportedUnstableV2::XdgExportedUnstableV2(
QObject *parent)
210 : XdgExported(new Private(this), parent)
214 void XdgExportedUnstableV2::Private::setupV2(zxdg_exported_v2 *arg)
219 zxdg_exported_v2_add_listener(exported, &s_listener,
this);
222 XdgExportedUnstableV2::Private::Private(XdgExportedUnstableV2 *q)
223 : XdgExported::Private::Private(q)
227 XdgExportedUnstableV2::~XdgExportedUnstableV2()
231 class Q_DECL_HIDDEN XdgImportedUnstableV2::Private :
public XdgImported::Private
234 Private(XdgImportedUnstableV2 *q);
236 void setupV2(zxdg_imported_v2 *arg)
override;
237 zxdg_imported_v2 *importedV2()
override;
239 void setParentOf(Surface *surface)
override;
241 void destroy()
override;
244 WaylandPointer<zxdg_imported_v2, zxdg_imported_v2_destroy> imported;
247 static void destroyedCallback(
void *data, zxdg_imported_v2 *zxdg_imported_v2);
249 static const zxdg_imported_v2_listener s_listener;
252 XdgImportedUnstableV2::Private::Private(XdgImportedUnstableV2 *q)
253 : XdgImported::Private::Private(q)
257 zxdg_imported_v2 *XdgImportedUnstableV2::Private::importedV2()
267 void XdgImportedUnstableV2::Private::destroy()
272 bool XdgImportedUnstableV2::Private::isValid()
274 return imported.isValid();
277 void XdgImportedUnstableV2::Private::setParentOf(Surface *surface)
280 zxdg_imported_v2_set_parent_of(imported, *surface);
283 const zxdg_imported_v2_listener XdgImportedUnstableV2::Private::s_listener = {destroyedCallback};
285 void XdgImportedUnstableV2::Private::destroyedCallback(
void *data, zxdg_imported_v2 *zxdg_imported_v2)
287 auto p =
reinterpret_cast<XdgImportedUnstableV2::Private *
>(data);
288 Q_ASSERT(p->imported == zxdg_imported_v2);
291 Q_EMIT p->q->importedDestroyed();
294 XdgImportedUnstableV2::XdgImportedUnstableV2(
QObject *parent)
295 : XdgImported(new Private(this), parent)
299 void XdgImportedUnstableV2::Private::setupV2(zxdg_imported_v2 *arg)
304 zxdg_imported_v2_add_listener(imported, &s_listener,
this);
307 XdgImportedUnstableV2::~XdgImportedUnstableV2()