20 #include "xdgforeign_v2.h" 21 #include "xdgforeign_p.h" 22 #include "event_queue.h" 23 #include "wayland_pointer_p.h" 25 #include <wayland-xdg-foreign-unstable-v2-client-protocol.h> 34 class Q_DECL_HIDDEN XdgExporterUnstableV2::Private :
public XdgExporter::Private
39 XdgExported *exportTopLevelV2(Surface *surface,
QObject *parent)
override;
40 void setupV2(zxdg_exporter_v2 *arg)
override;
41 zxdg_exporter_v2 *exporterV2()
override;
43 void release()
override;
44 void destroy()
override;
45 bool isValid()
override;
47 WaylandPointer<zxdg_exporter_v2, zxdg_exporter_v2_destroy> exporter;
50 XdgExporterUnstableV2::Private::Private()
51 : XdgExporter::Private()
54 zxdg_exporter_v2 *XdgExporterUnstableV2::Private::exporterV2()
59 void XdgExporterUnstableV2::Private::release()
64 void XdgExporterUnstableV2::Private::destroy()
69 bool XdgExporterUnstableV2::Private::isValid()
71 return exporter.isValid();
74 XdgExported *XdgExporterUnstableV2::Private::exportTopLevelV2(Surface *surface,
QObject *
parent)
77 auto p =
new XdgExportedUnstableV2(parent);
78 auto w = zxdg_exporter_v2_export_toplevel(exporter, *surface);
87 XdgExporterUnstableV2::XdgExporterUnstableV2(
QObject *parent)
92 void XdgExporterUnstableV2::Private::setupV2(zxdg_exporter_v2 *arg)
99 XdgExporterUnstableV2::~XdgExporterUnstableV2()
103 class Q_DECL_HIDDEN XdgImporterUnstableV2::Private :
public XdgImporter::Private
108 XdgImported *importTopLevelV2(
const QString & handle,
QObject *parent)
override;
109 void setupV2(zxdg_importer_v2 *arg)
override;
110 zxdg_importer_v2 *importerV2()
override;
116 WaylandPointer<zxdg_importer_v2, zxdg_importer_v2_destroy> importer;
120 XdgImporterUnstableV2::Private::Private()
121 : XdgImporter::Private()
124 zxdg_importer_v2 *XdgImporterUnstableV2::Private::importerV2()
129 void XdgImporterUnstableV2::Private::release()
134 void XdgImporterUnstableV2::Private::destroy()
139 bool XdgImporterUnstableV2::Private::isValid()
141 return importer.isValid();
144 XdgImported *XdgImporterUnstableV2::Private::importTopLevelV2(
const QString & handle,
QObject *parent)
147 auto p =
new XdgImportedUnstableV2(parent);
148 auto w = zxdg_importer_v2_import_toplevel(importer, handle.
toUtf8());
162 void XdgImporterUnstableV2::Private::setupV2(zxdg_importer_v2 *arg)
169 XdgImporterUnstableV2::~XdgImporterUnstableV2()
174 class Q_DECL_HIDDEN XdgExportedUnstableV2::Private :
public XdgExported::Private
177 Private(XdgExportedUnstableV2 *q);
179 void setupV2(zxdg_exported_v2 *arg)
override;
180 zxdg_exported_v2 *exportedV2()
override;
186 WaylandPointer<zxdg_exported_v2, zxdg_exported_v2_destroy> exported;
189 static void handleCallback(
void *data, zxdg_exported_v2 *zxdg_exported_v2,
const char * handle);
191 static const zxdg_exported_v2_listener s_listener;
194 zxdg_exported_v2 *XdgExportedUnstableV2::Private::exportedV2()
199 void XdgExportedUnstableV2::Private::release()
204 void XdgExportedUnstableV2::Private::destroy()
209 bool XdgExportedUnstableV2::Private::isValid()
211 return exported.isValid();
215 const zxdg_exported_v2_listener XdgExportedUnstableV2::Private::s_listener = {
219 void XdgExportedUnstableV2::Private::handleCallback(
void *data, zxdg_exported_v2 *zxdg_exported_v2,
const char * handle)
221 auto p =
reinterpret_cast<XdgExportedUnstableV2::Private*
>(data);
222 Q_ASSERT(p->exported == zxdg_exported_v2);
228 XdgExportedUnstableV2::XdgExportedUnstableV2(
QObject *parent)
229 : XdgExported(
new Private(
this), parent)
233 void XdgExportedUnstableV2::Private::setupV2(zxdg_exported_v2 *arg)
238 zxdg_exported_v2_add_listener(exported, &s_listener,
this);
241 XdgExportedUnstableV2::Private::Private(XdgExportedUnstableV2 *q)
242 : XdgExported::Private::Private(q)
246 XdgExportedUnstableV2::~XdgExportedUnstableV2()
250 class Q_DECL_HIDDEN XdgImportedUnstableV2::Private :
public XdgImported::Private
253 Private(XdgImportedUnstableV2 *q);
255 void setupV2(zxdg_imported_v2 *arg)
override;
256 zxdg_imported_v2 *importedV2()
override;
258 void setParentOf(
Surface *surface)
override;
263 WaylandPointer<zxdg_imported_v2, zxdg_imported_v2_destroy> imported;
266 static void destroyedCallback(
void *data, zxdg_imported_v2 *zxdg_imported_v2);
268 static const zxdg_imported_v2_listener s_listener;
271 XdgImportedUnstableV2::Private::Private(XdgImportedUnstableV2 *q)
272 : XdgImported::Private::Private(q)
276 zxdg_imported_v2 *XdgImportedUnstableV2::Private::importedV2()
281 void XdgImportedUnstableV2::Private::release()
286 void XdgImportedUnstableV2::Private::destroy()
291 bool XdgImportedUnstableV2::Private::isValid()
293 return imported.isValid();
296 void XdgImportedUnstableV2::Private::setParentOf(
Surface *surface)
299 zxdg_imported_v2_set_parent_of(imported, *surface);
302 const zxdg_imported_v2_listener XdgImportedUnstableV2::Private::s_listener = {
306 void XdgImportedUnstableV2::Private::destroyedCallback(
void *data, zxdg_imported_v2 *zxdg_imported_v2)
308 auto p =
reinterpret_cast<XdgImportedUnstableV2::Private*
>(data);
309 Q_ASSERT(p->imported == zxdg_imported_v2);
312 emit p->q->importedDestroyed();
317 XdgImportedUnstableV2::XdgImportedUnstableV2(
QObject *parent)
318 : XdgImported(
new Private(
this), parent)
322 void XdgImportedUnstableV2::Private::setupV2(zxdg_imported_v2 *arg)
327 zxdg_imported_v2_add_listener(imported, &s_listener,
this);
330 XdgImportedUnstableV2::~XdgImportedUnstableV2()
Wrapper for the zxdg_exporter_v2 interface.
void destroy()
Destroys the data held by this .
Wrapper class for wl_event_queue interface.
Wrapper for the zxdg_importer_v2 interface.
Wrapper for the wl_surface interface.
void release()
Releases the zxdg_exporter_v2 interface.
XdgImporterUnstableV2(QObject *parent=nullptr)
Creates a new .
void destroy()
Destroys the data held by this .
void release()
Releases the zxdg_importer_v2 interface.
QByteArray toUtf8() const