KWayland

xdgforeign_v2.h
1 /*
2  SPDX-FileCopyrightText: 2017 Marco Martin <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6 #ifndef KWAYLAND_CLIENT_XDGFOREIGN_V2_H
7 #define KWAYLAND_CLIENT_XDGFOREIGN_V2_H
8 
9 #include "surface.h"
10 #include "xdgforeign.h"
11 
12 #include <QObject>
13 
14 #include "KWayland/Client/kwaylandclient_export.h"
15 
16 struct zxdg_exporter_v2;
17 struct zxdg_importer_v2;
18 struct zxdg_exported_v2;
19 struct zxdg_imported_v2;
20 
21 namespace KWayland
22 {
23 namespace Client
24 {
25 class XdgExportedUnstableV2;
26 class XdgImportedUnstableV2;
27 
28 /**
29  * @short Wrapper for the zxdg_exporter_v2 interface.
30  *
31  * This class provides a convenient wrapper for the zxdg_exporter_v2 interface.
32  *
33  * To use this class one needs to interact with the Registry. There are two
34  * possible ways to create the interface:
35  * @code
36  * *c = registry->create(name, version);
37  * @endcode
38  *
39  * This creates the and sets it up directly. As an alternative this
40  * can also be done in a more low level way:
41  * @code
42  * *c = new ;
43  * c->setup(registry->bind(name, version));
44  * @endcode
45  *
46  * The can be used as a drop-in replacement for any zxdg_exporter_v2
47  * pointer as it provides matching cast operators.
48  *
49  * @see Registry
50  **/
51 class Q_DECL_HIDDEN XdgExporterUnstableV2 : public XdgExporter
52 {
53  Q_OBJECT
54 public:
55  /**
56  * Creates a new .
57  * Note: after constructing the it is not yet valid and one needs
58  * to call setup. In order to get a ready to use prefer using
59  * Registry::create.
60  **/
61  explicit XdgExporterUnstableV2(QObject *parent = nullptr);
62  ~XdgExporterUnstableV2() override;
63 
64 private:
65  class Private;
66 };
67 
68 /**
69  * @short Wrapper for the zxdg_importer_v2 interface.
70  *
71  * This class provides a convenient wrapper for the zxdg_importer_v2 interface.
72  *
73  * To use this class one needs to interact with the Registry. There are two
74  * possible ways to create the interface:
75  * @code
76  * *c = registry->create(name, version);
77  * @endcode
78  *
79  * This creates the and sets it up directly. As an alternative this
80  * can also be done in a more low level way:
81  * @code
82  * *c = new ;
83  * c->setup(registry->bind(name, version));
84  * @endcode
85  *
86  * The can be used as a drop-in replacement for any zxdg_importer_v2
87  * pointer as it provides matching cast operators.
88  *
89  * @see Registry
90  **/
91 class Q_DECL_HIDDEN XdgImporterUnstableV2 : public XdgImporter
92 {
93  Q_OBJECT
94 public:
95  /**
96  * Creates a new .
97  * Note: after constructing the it is not yet valid and one needs
98  * to call setup. In order to get a ready to use prefer using
99  * Registry::create.
100  **/
101  explicit XdgImporterUnstableV2(QObject *parent = nullptr);
102  ~XdgImporterUnstableV2() override;
103 
104 private:
105  class Private;
106 };
107 
108 class Q_DECL_HIDDEN XdgExportedUnstableV2 : public XdgExported
109 {
110  Q_OBJECT
111 public:
112  ~XdgExportedUnstableV2() override;
113 
114 private:
115  friend class XdgExporterUnstableV2;
116  explicit XdgExportedUnstableV2(QObject *parent = nullptr);
117  class Private;
118 };
119 
120 class Q_DECL_HIDDEN XdgImportedUnstableV2 : public XdgImported
121 {
122  Q_OBJECT
123 public:
124  ~XdgImportedUnstableV2() override;
125 
126 private:
127  friend class XdgImporterUnstableV2;
128  explicit XdgImportedUnstableV2(QObject *parent = nullptr);
129  class Private;
130 };
131 
132 }
133 }
134 
135 #endif
Wrapper for the zxdg_exporter_v2 interface.
Definition: xdgforeign_v2.h:51
Wrapper for the zxdg_importer_v2 interface.
Definition: xdgforeign_v2.h:91
Wrapper for the zxdg_exporter_v2 interface.
Definition: xdgforeign.h:52
Wrapper for the zxdg_importer_v2 interface.
Definition: xdgforeign.h:152
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Oct 3 2023 04:08:58 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.