KWayland

registry.h
1 /*
2  SPDX-FileCopyrightText: 2014 Martin Gräßlin <[email protected]>
3  SPDX-FileCopyrightText: 2018 David Edmundson <[email protected]>
4 
5  SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
6 */
7 #ifndef WAYLAND_REGISTRY_H
8 #define WAYLAND_REGISTRY_H
9 
10 #include <QHash>
11 #include <QObject>
12 
13 #include <KWayland/Client/kwaylandclient_export.h>
14 
15 struct wl_compositor;
16 struct wl_data_device_manager;
17 struct wl_display;
18 struct wl_output;
19 struct wl_registry;
20 struct wl_seat;
21 struct wl_shell;
22 struct wl_shm;
23 struct wl_subcompositor;
24 struct wl_text_input_manager;
25 struct zwp_text_input_manager_v2;
26 struct _wl_fullscreen_shell;
27 struct org_kde_kwin_appmenu_manager;
28 struct org_kde_kwin_outputmanagement;
29 struct org_kde_kwin_outputdevice;
30 struct org_kde_kwin_fake_input;
31 struct org_kde_kwin_idle;
32 struct org_kde_kwin_keystate;
33 struct org_kde_kwin_remote_access_manager;
34 struct org_kde_kwin_dpms_manager;
35 struct org_kde_kwin_shadow_manager;
36 struct org_kde_kwin_blur_manager;
37 struct org_kde_kwin_contrast_manager;
38 struct org_kde_kwin_slide_manager;
39 struct org_kde_plasma_activation_feedback;
40 struct org_kde_plasma_shell;
41 struct org_kde_plasma_virtual_desktop_management;
42 struct org_kde_plasma_window_management;
43 struct org_kde_kwin_server_decoration_manager;
44 struct org_kde_kwin_server_decoration_palette_manager;
45 struct xdg_shell;
46 struct zxdg_shell_v6;
47 struct xdg_wm_base;
48 struct zwp_relative_pointer_manager_v1;
49 struct zwp_pointer_gestures_v1;
50 struct zwp_pointer_constraints_v1;
51 struct zxdg_exporter_v2;
52 struct zxdg_importer_v2;
53 struct zwp_idle_inhibit_manager_v1;
54 struct zxdg_output_manager_v1;
55 struct zxdg_decoration_manager_v1;
56 
57 namespace KWayland
58 {
59 namespace Client
60 {
61 class AppMenuManager;
62 class Compositor;
63 class ConnectionThread;
64 class DataDeviceManager;
65 class DpmsManager;
66 class EventQueue;
67 class FakeInput;
68 class FullscreenShell;
69 class OutputManagement;
70 class OutputDevice;
71 class Idle;
72 class IdleInhibitManager;
73 class Keystate;
74 class RemoteAccessManager;
75 class Output;
76 class PlasmaActivationFeedback;
77 class PlasmaShell;
78 class PlasmaVirtualDesktopManagement;
79 class PlasmaWindowManagement;
80 class PointerConstraints;
81 class PointerGestures;
82 class Seat;
83 class ShadowManager;
84 class BlurManager;
85 class ContrastManager;
86 class SlideManager;
87 class Shell;
88 class ShmPool;
89 class ServerSideDecorationManager;
90 class ServerSideDecorationPaletteManager;
91 class SubCompositor;
92 class TextInputManager;
93 class TextInputManagerUnstableV0;
94 class TextInputManagerUnstableV2;
95 class XdgShell;
96 class RelativePointerManager;
97 class XdgExporterUnstableV2;
98 class XdgImporterUnstableV2;
99 class XdgExporter;
100 class XdgImporter;
101 class XdgOutputManager;
102 class XdgDecorationManager;
103 
104 /**
105  * @short Wrapper for the wl_registry interface.
106  *
107  * The purpose of this class is to manage the wl_registry interface.
108  * This class supports some well-known interfaces and can create a
109  * wrapper class for those.
110  *
111  * The main purpose is to emit signals whenever a new interface is
112  * added or an existing interface is removed. For the well known interfaces
113  * dedicated signals are emitted allowing a user to connect directly to the
114  * signal announcing the interface it is interested in.
115  *
116  * To create and setup the Registry one needs to call create with either a
117  * wl_display from an existing Wayland connection or a ConnectionThread instance:
118  *
119  * @code
120  * ConnectionThread *connection; // existing connection
121  * Registry registry;
122  * registry.create(connection);
123  * registry.setup();
124  * @endcode
125  *
126  * The interfaces are announced in an asynchronous way by the Wayland server.
127  * To initiate the announcing of the interfaces one needs to call setup.
128  **/
129 class KWAYLANDCLIENT_EXPORT Registry : public QObject
130 {
131  Q_OBJECT
132 public:
133  /**
134  * The well-known interfaces this Registry supports.
135  * For each of the enum values the Registry is able to create a Wrapper
136  * object.
137  **/
138  enum class Interface {
139  Unknown, ///< Refers to an Unknown interface
140  Compositor, ///< Refers to the wl_compositor interface
141  Shell, ///< Refers to the wl_shell interface
142  Seat, ///< Refers to the wl_seat interface
143  Shm, ///< Refers to the wl_shm interface
144  Output, ///< Refers to the wl_output interface
145  FullscreenShell, ///< Refers to the _wl_fullscreen_shell interface
146  SubCompositor, ///< Refers to the wl_subcompositor interface;
147  DataDeviceManager, ///< Refers to the wl_data_device_manager interface
148  PlasmaShell, ///< Refers to org_kde_plasma_shell interface
149  PlasmaWindowManagement, ///< Refers to org_kde_plasma_window_management interface
150  Idle, ///< Refers to org_kde_kwin_idle_interface interface
151  FakeInput, ///< Refers to org_kde_kwin_fake_input interface
152  Shadow, ///< Refers to org_kde_kwin_shadow_manager interface
153  Blur, ///< refers to org_kde_kwin_blur_manager interface
154  Contrast, ///< refers to org_kde_kwin_contrast_manager interface
155  Slide, ///< refers to org_kde_kwin_slide_manager
156  Dpms, ///< Refers to org_kde_kwin_dpms_manager interface
157  OutputManagement, ///< Refers to the wl_data_device_manager interface
158  OutputDevice, ///< Refers to the org_kde_kwin_outputdevice interface
159  ServerSideDecorationManager, ///< Refers to org_kde_kwin_server_decoration_manager
160  TextInputManagerUnstableV0, ///< Refers to wl_text_input_manager @since 5.23
161  TextInputManagerUnstableV2, ///< Refers to zwp_text_input_manager_v2 @since 5.23
162  XdgShellUnstableV5, ///< Refers to xdg_shell (unstable version 5) @since 5.25
163  RelativePointerManagerUnstableV1, ///< Refers to zwp_relative_pointer_manager_v1 @since 5.28
164  PointerGesturesUnstableV1, ///< Refers to zwp_pointer_gestures_v1 @since 5.29
165  PointerConstraintsUnstableV1, ///< Refers to zwp_pointer_constraints_v1 @since 5.29
166  XdgExporterUnstableV2, ///< refers to zxdg_exporter_v2 @since 5.40
167  XdgImporterUnstableV2, ///< refers to zxdg_importer_v2 @since 5.40
168  XdgShellUnstableV6, ///< Refers to zxdg_shell_v6 (unstable version 6) @since 5.39
169  IdleInhibitManagerUnstableV1, ///< Refers to zwp_idle_inhibit_manager_v1 (unstable version 1) @since 5.41
170  AppMenu, ///< Refers to org_kde_kwin_appmenu @since 5.42
171  ServerSideDecorationPalette, ///< Refers to org_kde_kwin_server_decoration_palette_manager @since 5.42
172  RemoteAccessManager, ///< Refers to org_kde_kwin_remote_access_manager interface @since 5.45
173  PlasmaVirtualDesktopManagement, ///< Refers to org_kde_plasma_virtual_desktop_management interface @since 5.52
174  XdgOutputUnstableV1, ///< refers to zxdg_output_v1 @since 5.47
175  XdgShellStable, ///< refers to xdg_wm_base @since 5.48
176  XdgDecorationUnstableV1, ///< refers to zxdg_decoration_manager_v1 @since 5.54
177  Keystate, ///< refers to org_kwin_keystate @since 5.60
178  PlasmaActivationFeedback, ///< Refers to org_kde_plasma_activation_feedback interface, @since 5.83
179  };
180  explicit Registry(QObject *parent = nullptr);
181  virtual ~Registry();
182 
183  /**
184  * Releases the wl_registry interface.
185  * After the interface has been released the Registry instance is no
186  * longer valid and can be setup with another wl_registry interface.
187  **/
188  void release();
189  /**
190  * Destroys the data held by this Registry.
191  * This method is supposed to be used when the connection to the Wayland
192  * server goes away. If the connection is not valid anymore, it's not
193  * possible to call release anymore as that calls into the Wayland
194  * connection and the call would fail. This method cleans up the data, so
195  * that the instance can be deleted or set up to a new wl_registry interface
196  * once there is a new connection available.
197  *
198  * It is suggested to connect this method to ConnectionThread::connectionDied:
199  * @code
200  * connect(connection, &ConnectionThread::connectionDied, registry, &Registry::destroy);
201  * @endcode
202  *
203  * @see release
204  **/
205  void destroy();
206  /**
207  * Gets the registry from the @p display.
208  **/
209  void create(wl_display *display);
210  /**
211  * Gets the registry from the @p connection.
212  **/
213  void create(ConnectionThread *connection);
214  /**
215  * Finalizes the setup of the Registry.
216  * After calling this method the interfaces will be announced in an asynchronous way.
217  * The Registry must have been created when calling this method.
218  * @see create
219  **/
220  void setup();
221 
222  /**
223  * Sets the @p queue to use for this Registry.
224  *
225  * The EventQueue should be set before the Registry gets setup.
226  * The EventQueue gets automatically added to all interfaces created by
227  * this Registry. So that all objects are in the same EventQueue.
228  *
229  * @param queue The event queue to use for this Registry.
230  **/
231  void setEventQueue(EventQueue *queue);
232  /**
233  * @returns The EventQueue used by this Registry
234  **/
235  EventQueue *eventQueue();
236 
237  /**
238  * @returns @c true if managing a wl_registry.
239  **/
240  bool isValid() const;
241  /**
242  * @returns @c true if the Registry has an @p interface.
243  **/
244  bool hasInterface(Interface interface) const;
245 
246  /**
247  * Representation of one announced interface.
248  **/
250  /**
251  * The name of the announced interface.
252  **/
253  quint32 name;
254  /**
255  * The maximum supported version of the announced interface.
256  **/
257  quint32 version;
258  };
259  /**
260  * Provides name and version for the @p interface.
261  *
262  * The first value of the returned pair is the "name", the second value is the "version".
263  * If the @p interface has not been announced, both values are set to 0.
264  * If there @p interface has been announced multiple times, the last announced is returned.
265  * In case one is interested in all announced interfaces, one should prefer @link interfaces(Interface) @endlink.
266  *
267  * The returned information can be passed into the bind or create methods.
268  *
269  * @param interface The well-known interface for which the name and version should be retrieved
270  * @returns name and version of the given interface
271  * @since 5.5
272  **/
273  AnnouncedInterface interface(Interface interface) const;
274  /**
275  * Provides all pairs of name and version for the well-known @p interface.
276  *
277  * If the @p interface has not been announced, an empty vector is returned.
278  *
279  * The returned information can be passed into the bind or create methods.
280  *
281  * @param interface The well-known interface for which the name and version should be retrieved
282  * @returns All pairs of name and version of the given interface
283  * @since 5.5
284  **/
285  QVector<AnnouncedInterface> interfaces(Interface interface) const;
286 
287  /**
288  * @name Low-level bind methods for global interfaces.
289  **/
290  ///@{
291  /**
292  * Binds the wl_compositor with @p name and @p version.
293  * If the @p name does not exist or is not for the compositor interface,
294  * @c null will be returned.
295  *
296  * Prefer using createCompositor instead.
297  * @see createCompositor
298  **/
299  wl_compositor *bindCompositor(uint32_t name, uint32_t version) const;
300  /**
301  * Binds the wl_shell with @p name and @p version.
302  * If the @p name does not exist or is not for the shell interface,
303  * @c null will be returned.
304  *
305  * Prefer using createShell instead.
306  * @see createShell
307  **/
308  wl_shell *bindShell(uint32_t name, uint32_t version) const;
309  /**
310  * Binds the wl_seat with @p name and @p version.
311  * If the @p name does not exist or is not for the seat interface,
312  * @c null will be returned.
313  *
314  * Prefer using createSeat instead.
315  * @see createSeat
316  **/
317  wl_seat *bindSeat(uint32_t name, uint32_t version) const;
318  /**
319  * Binds the wl_shm with @p name and @p version.
320  * If the @p name does not exist or is not for the shm interface,
321  * @c null will be returned.
322  *
323  * Prefer using createShmPool instead.
324  * @see createShmPool
325  **/
326  wl_shm *bindShm(uint32_t name, uint32_t version) const;
327  /**
328  * Binds the org_kde_kwin_outputmanagement with @p name and @p version.
329  * If the @p name does not exist or is not for the outputmanagement interface,
330  * @c null will be returned.
331  *
332  * Prefer using createOutputManagement instead.
333  * @see createOutputManagement
334  **/
335  org_kde_kwin_outputmanagement *bindOutputManagement(uint32_t name, uint32_t version) const;
336  /**
337  * Binds the org_kde_kwin_outputdevice with @p name and @p version.
338  * If the @p name does not exist or is not for the outputdevice interface,
339  * @c null will be returned.
340  *
341  * Prefer using createOutputDevice instead.
342  * @see createOutputDevice
343  **/
344  wl_output *bindOutput(uint32_t name, uint32_t version) const;
345  /**
346  * Binds the wl_subcompositor with @p name and @p version.
347  * If the @p name does not exist or is not for the subcompositor interface,
348  * @c null will be returned.
349  *
350  * Prefer using createSubCompositor instead.
351  * @see createSubCompositor
352  **/
353  wl_subcompositor *bindSubCompositor(uint32_t name, uint32_t version) const;
354  /**
355  * Binds the wl_output with @p name and @p version.
356  * If the @p name does not exist or is not for the output interface,
357  * @c null will be returned.
358  *
359  * Prefer using createOutput instead.
360  * @see createOutput
361  * @since 5.5
362  **/
363  org_kde_kwin_outputdevice *bindOutputDevice(uint32_t name, uint32_t version) const;
364 
365  /**
366  * Binds the _wl_fullscreen_shell with @p name and @p version.
367  * If the @p name does not exist or is not for the fullscreen shell interface,
368  * @c null will be returned.
369  *
370  * Prefer using createFullscreenShell instead.
371  * @see createFullscreenShell
372  **/
373  _wl_fullscreen_shell *bindFullscreenShell(uint32_t name, uint32_t version) const;
374  /**
375  * Binds the wl_data_device_manager with @p name and @p version.
376  * If the @p name does not exist or is not for the data device manager interface,
377  * @c null will be returned.
378  *
379  * Prefer using createDataDeviceManager instead.
380  * @see createDataDeviceManager
381  **/
382  wl_data_device_manager *bindDataDeviceManager(uint32_t name, uint32_t version) const;
383  /**
384  * Binds the org_kde_plasma_shell with @p name and @p version.
385  * If the @p name does not exist or is not for the Plasma shell interface,
386  * @c null will be returned.
387  *
388  * Prefer using createPlasmaShell instead.
389  * @see createPlasmaShell
390  * @since 5.4
391  **/
392  org_kde_plasma_shell *bindPlasmaShell(uint32_t name, uint32_t version) const;
393  /**
394  * Binds the org_kde_plasma_activation_feedback with @p name and @p version.
395  * If the @p name does not exist or is not for the Plasma activation manager interface,
396  * @c null will be returned.
397  *
398  * Prefer using createPlasmaActivationFeedback instead.
399  * @see createPlasmaActivationFeedback
400  * @since 5.83
401  **/
402  org_kde_plasma_activation_feedback *bindPlasmaActivationFeedback(uint32_t name, uint32_t version) const;
403  /**
404  * Binds the org_kde_plasma_virtual_desktop_management with @p name and @p version.
405  * If the @p name does not exist or is not for the Plasma Virtual desktop interface,
406  * @c null will be returned.
407  *
408  * Prefer using createPlasmaShell instead.
409  * @see createPlasmaShell
410  * @since 5.52
411  **/
412  org_kde_plasma_virtual_desktop_management *bindPlasmaVirtualDesktopManagement(uint32_t name, uint32_t version) const;
413  /**
414  * Binds the org_kde_plasma_window_management with @p name and @p version.
415  * If the @p name does not exist or is not for the Plasma window management interface,
416  * @c null will be returned.
417  *
418  * Prefer using createPlasmaWindowManagement instead.
419  * @see createPlasmaWindowManagement
420  * @since 5.46
421  **/
422  org_kde_plasma_window_management *bindPlasmaWindowManagement(uint32_t name, uint32_t version) const;
423  /**
424  * Binds the org_kde_kwin_idle with @p name and @p version.
425  * If the @p name does not exist or is not for the idle interface,
426  * @c null will be returned.
427  *
428  * Prefer using createIdle instead.
429  * @see createIdle
430  * @since 5.4
431  **/
432  org_kde_kwin_idle *bindIdle(uint32_t name, uint32_t version) const;
433  /**
434  * Binds the org_kde_kwin_keystate with @p name and @p version.
435  * If the @p name does not exist or is not for the keystate interface,
436  * @c null will be returned.
437  *
438  * Prefer using createKeystate instead.
439  * @see createKeystate
440  * @since 5.60
441  **/
442  org_kde_kwin_keystate *bindKeystate(uint32_t name, uint32_t version) const;
443  /**
444  * Binds the org_kde_kwin_remote_access_manager with @p name and @p version.
445  * If the @p name does not exist or is not for the idle interface,
446  * @c null will be returned.
447  *
448  * Prefer using createRemoteAccessManager instead.
449  * @see createRemoteAccessManager
450  * @since 5.45
451  **/
452  org_kde_kwin_remote_access_manager *bindRemoteAccessManager(uint32_t name, uint32_t version) const;
453  /**
454  * Binds the org_kde_kwin_fake_input with @p name and @p version.
455  * If the @p name does not exist or is not for the fake input interface,
456  * @c null will be returned.
457  *
458  * Prefer using createFakeInput instead.
459  * @see createFakeInput
460  * @since 5.4
461  **/
462  org_kde_kwin_fake_input *bindFakeInput(uint32_t name, uint32_t version) const;
463  /**
464  * Binds the org_kde_kwin_shadow_manager with @p name and @p version.
465  * If the @p name does not exist or is not for the shadow manager interface,
466  * @c null will be returned.
467  *
468  * Prefer using createShadowManager instead.
469  * @see createShadowManager
470  * @since 5.4
471  **/
472  org_kde_kwin_shadow_manager *bindShadowManager(uint32_t name, uint32_t version) const;
473  /**
474  * Binds the org_kde_kwin_blur_manager with @p name and @p version.
475  * If the @p name does not exist or is not for the blur manager interface,
476  * @c null will be returned.
477  *
478  * Prefer using createBlurManager instead.
479  * @see createBlurManager
480  * @since 5.5
481  **/
482  org_kde_kwin_blur_manager *bindBlurManager(uint32_t name, uint32_t version) const;
483  /**
484  * Binds the org_kde_kwin_contrast_manager with @p name and @p version.
485  * If the @p name does not exist or is not for the contrast manager interface,
486  * @c null will be returned.
487  *
488  * Prefer using createContrastManager instead.
489  * @see createContrastManager
490  * @since 5.5
491  **/
492  org_kde_kwin_contrast_manager *bindContrastManager(uint32_t name, uint32_t version) const;
493  /**
494  * Binds the org_kde_kwin_slide_manager with @p name and @p version.
495  * If the @p name does not exist or is not for the slide manager interface,
496  * @c null will be returned.
497  *
498  * Prefer using createSlideManager instead.
499  * @see createSlideManager
500  * @since 5.5
501  **/
502  org_kde_kwin_slide_manager *bindSlideManager(uint32_t name, uint32_t version) const;
503  /**
504  * Binds the org_kde_kwin_dpms_manager with @p name and @p version.
505  * If the @p name does not exist or is not for the dpms manager interface,
506  * @c null will be returned.
507  *
508  * Prefer using createDpmsManager instead.
509  * @see createDpmsManager
510  * @since 5.5
511  **/
512  org_kde_kwin_dpms_manager *bindDpmsManager(uint32_t name, uint32_t version) const;
513  /**
514  * Binds the org_kde_kwin_server_decoration_manager with @p name and @p version.
515  * If the @p name does not exist or is not for the server side decoration manager interface,
516  * @c null will be returned.
517  *
518  * Prefer using createServerSideDecorationManager instead.
519  * @see createServerSideDecorationManager
520  * @since 5.6
521  **/
522  org_kde_kwin_server_decoration_manager *bindServerSideDecorationManager(uint32_t name, uint32_t version) const;
523  /**
524  * Binds the wl_text_input_manager with @p name and @p version.
525  * If the @p name does not exist or is not for the text input interface in unstable version 0,
526  * @c null will be returned.
527  *
528  * Prefer using createTextInputManager instead.
529  * @see createTextInputManager
530  * @since 5.23
531  **/
532  wl_text_input_manager *bindTextInputManagerUnstableV0(uint32_t name, uint32_t version) const;
533  /**
534  * Binds the zwp_text_input_manager_v2 with @p name and @p version.
535  * If the @p name does not exist or is not for the text input interface in unstable version 2,
536  * @c null will be returned.
537  *
538  * Prefer using createTextInputManager instead.
539  * @see createTextInputManager
540  * @since 5.23
541  **/
542  zwp_text_input_manager_v2 *bindTextInputManagerUnstableV2(uint32_t name, uint32_t version) const;
543  /**
544  * Binds the xdg_shell (unstable version 5) with @p name and @p version.
545  * If the @p name does not exist or is not for the xdg shell interface in unstable version 5,
546  * @c null will be returned.
547  *
548  * Prefer using createXdgShell instead.
549  * @see createXdgShell
550  * @since 5.25
551  **/
552  xdg_shell *bindXdgShellUnstableV5(uint32_t name, uint32_t version) const;
553  /**
554  * Binds the zxdg_shell_v6 (unstable version 6) with @p name and @p version.
555  * If the @p name does not exist or is not for the xdg shell interface in unstable version 5,
556  * @c null will be returned.
557  *
558  * Prefer using createXdgShell instead.
559  * @see createXdgShell
560  * @since 5.39
561  **/
562  zxdg_shell_v6 *bindXdgShellUnstableV6(uint32_t name, uint32_t version) const;
563  /**
564  * Binds the zxdg_shell_v6 (unstable version 6) with @p name and @p version.
565  * If the @p name does not exist or is not for the xdg shell interface in unstable version 5,
566  * @c null will be returned.
567  *
568  * Prefer using createXdgShell instead.
569  * @see createXdgShell
570  * @since 5.39
571  **/
572  xdg_wm_base *bindXdgShellStable(uint32_t name, uint32_t version) const;
573  /**
574  * Binds the zwp_relative_pointer_manager_v1 with @p name and @p version.
575  * If the @p name does not exist or is not for the relative pointer interface in unstable version 1,
576  * @c null will be returned.
577  *
578  * Prefer using createRelativePointerManager instead.
579  * @see createRelativePointerManager
580  * @since 5.28
581  **/
582  zwp_relative_pointer_manager_v1 *bindRelativePointerManagerUnstableV1(uint32_t name, uint32_t version) const;
583  /**
584  * Binds the zwp_pointer_gestures_v1 with @p name and @p version.
585  * If the @p name does not exist or is not for the pointer gestures interface in unstable version 1,
586  * @c null will be returned.
587  *
588  * Prefer using createPointerGestures instead.
589  * @see createPointerGestures
590  * @since 5.29
591  **/
592  zwp_pointer_gestures_v1 *bindPointerGesturesUnstableV1(uint32_t name, uint32_t version) const;
593  /**
594  * Binds the zwp_pointer_constraints_v1 with @p name and @p version.
595  * If the @p name does not exist or is not for the pointer constraints interface in unstable version 1,
596  * @c null will be returned.
597  *
598  * Prefer using createPointerConstraints instead.
599  * @see createPointerConstraints
600  * @since 5.29
601  **/
602  zwp_pointer_constraints_v1 *bindPointerConstraintsUnstableV1(uint32_t name, uint32_t version) const;
603 
604  /**
605  * Binds the zxdg_exporter_v2 with @p name and @p version.
606  * If the @p name does not exists or isnot for the exporter
607  * extension in unstable version 1,
608  * @c null will be returned.
609  *
610  * Prefer using createXdgExporter
611  * @since 5.40
612  */
613  zxdg_exporter_v2 *bindXdgExporterUnstableV2(uint32_t name, uint32_t version) const;
614 
615  /**
616  * Binds the zxdg_importer_v2 with @p name and @p version.
617  * If the @p name does not exists or isnot for the importer
618  * extension in unstable version 1,
619  * @c null will be returned.
620  *
621  * Prefer using createXdgImporter
622  * @since 5.40
623  */
624  zxdg_importer_v2 *bindXdgImporterUnstableV2(uint32_t name, uint32_t version) const;
625 
626  /**
627  * Binds the zwp_idle_inhibit_manager_v1 with @p name and @p version.
628  * If the @p name does not exists or is not for the idle inhibit manager in unstable version 1,
629  * @c null will be returned.
630  *
631  * Prefer using createIdleInhibitManager
632  * @since 5.41
633  */
634  zwp_idle_inhibit_manager_v1 *bindIdleInhibitManagerUnstableV1(uint32_t name, uint32_t version) const;
635 
636  /**
637  * Binds the org_kde_kwin_appmenu_manager with @p name and @p version.
638  * If the @p name does not exist or is not for the appmenu manager interface,
639  * @c null will be returned.
640  *
641  * Prefer using createAppMenuManager instead.
642  * @see createAppMenuManager
643  * @since 5.42
644  **/
645  org_kde_kwin_appmenu_manager *bindAppMenuManager(uint32_t name, uint32_t version) const;
646 
647  /**
648  * Binds the org_kde_kwin_server_decoration_palette_manager with @p name and @p version.
649  * If the @p name does not exist or is not for the server side decoration palette manager interface,
650  * @c null will be returned.
651  *
652  * Prefer using createServerSideDecorationPaletteManager instead.
653  * @see createServerSideDecorationPaletteManager
654  * @since 5.42
655  **/
656  org_kde_kwin_server_decoration_palette_manager *bindServerSideDecorationPaletteManager(uint32_t name, uint32_t version) const;
657 
658  /**
659  * Binds the zxdg_output_v1 with @p name and @p version.
660  * If the @p name does not exist,
661  * @c null will be returned.
662  *
663  * Prefer using createXdgOutputManager instead.
664  * @see createXdgOutputManager
665  * @since 5.47
666  **/
667  zxdg_output_manager_v1 *bindXdgOutputUnstableV1(uint32_t name, uint32_t version) const;
668 
669  /**
670  * Binds the zxdg_decoration_manager_v1 with @p name and @p version.
671  * If the @p name does not exist,
672  * @c null will be returned.
673  *
674  * Prefer using createXdgDecorationManager instead.
675  * @see createXdgDecorationManager
676  * @since 5.54
677  **/
678  zxdg_decoration_manager_v1 *bindXdgDecorationUnstableV1(uint32_t name, uint32_t version) const;
679 
680  ///@}
681 
682  /**
683  * @name Convenient factory methods for global objects.
684  **/
685  ///@{
686  /**
687  * Creates a Compositor and sets it up to manage the interface identified by
688  * @p name and @p version.
689  *
690  * Note: in case @p name is invalid or isn't for the wl_compositor interface,
691  * the returned Compositor will not be valid. Therefore it's recommended to call
692  * isValid on the created instance.
693  *
694  * @param name The name of the wl_compositor interface to bind
695  * @param version The version or the wl_compositor interface to use
696  * @param parent The parent for Compositor
697  *
698  * @returns The created Compositor.
699  **/
700  Compositor *createCompositor(quint32 name, quint32 version, QObject *parent = nullptr);
701  /**
702  * Creates a Seat and sets it up to manage the interface identified by
703  * @p name and @p version.
704  *
705  * Note: in case @p name is invalid or isn't for the wl_seat interface,
706  * the returned Seat will not be valid. Therefore it's recommended to call
707  * isValid on the created instance.
708  *
709  * @param name The name of the wl_seat interface to bind
710  * @param version The version or the wl_seat interface to use
711  * @param parent The parent for Seat
712  *
713  * @returns The created Seat.
714  **/
715  Shell *createShell(quint32 name, quint32 version, QObject *parent = nullptr);
716  /**
717  * Creates a Compositor and sets it up to manage the interface identified by
718  * @p name and @p version.
719  *
720  * Note: in case @p name is invalid or isn't for the wl_compositor interface,
721  * the returned Compositor will not be valid. Therefore it's recommended to call
722  * isValid on the created instance.
723  *
724  * @param name The name of the wl_compositor interface to bind
725  * @param version The version or the wl_compositor interface to use
726  * @param parent The parent for Compositor
727  *
728  * @returns The created Compositor.
729  **/
730  Seat *createSeat(quint32 name, quint32 version, QObject *parent = nullptr);
731  /**
732  * Creates a ShmPool and sets it up to manage the interface identified by
733  * @p name and @p version.
734  *
735  * Note: in case @p name is invalid or isn't for the wl_shm interface,
736  * the returned ShmPool will not be valid. Therefore it's recommended to call
737  * isValid on the created instance.
738  *
739  * @param name The name of the wl_shm interface to bind
740  * @param version The version or the wl_shm interface to use
741  * @param parent The parent for ShmPool
742  *
743  * @returns The created ShmPool.
744  **/
745  ShmPool *createShmPool(quint32 name, quint32 version, QObject *parent = nullptr);
746  /**
747  * Creates a SubCompositor and sets it up to manage the interface identified by
748  * @p name and @p version.
749  *
750  * Note: in case @p name is invalid or isn't for the wl_subcompositor interface,
751  * the returned SubCompositor will not be valid. Therefore it's recommended to call
752  * isValid on the created instance.
753  *
754  * @param name The name of the wl_subcompositor interface to bind
755  * @param version The version or the wl_subcompositor interface to use
756  * @param parent The parent for SubCompositor
757  *
758  * @returns The created SubCompositor.
759  **/
760  SubCompositor *createSubCompositor(quint32 name, quint32 version, QObject *parent = nullptr);
761  /**
762  * Creates an Output and sets it up to manage the interface identified by
763  * @p name and @p version.
764  *
765  * Note: in case @p name is invalid or isn't for the wl_output interface,
766  * the returned Output will not be valid. Therefore it's recommended to call
767  * isValid on the created instance.
768  *
769  * @param name The name of the wl_output interface to bind
770  * @param version The version or the wl_output interface to use
771  * @param parent The parent for Output
772  *
773  * @returns The created Output.
774  **/
775  Output *createOutput(quint32 name, quint32 version, QObject *parent = nullptr);
776  /**
777  * Creates an KWinOutputManagement and sets it up to manage the interface identified
778  * by @p name and @p version.
779  *
780  * Note: in case @p name is invalid or isn't for the wl_output interface,
781  * the returned KWinConnectors will not be valid. Therefore it's recommended to call
782  * isValid on the created instance.
783  *
784  * @param name The name of the org_kde_kwin_outputmanagement interface to bind
785  * @param version The version or the org_kde_kwin_outputmanagement interface to use
786  * @param parent The parent for KWinOutputManagement
787  *
788  * @returns The created KWinOutputManagement.
789  * @since 5.5
790  **/
791  OutputManagement *createOutputManagement(quint32 name, quint32 version, QObject *parent = nullptr);
792  /**
793  * Creates an OutputDevice and sets it up to manage the interface identified by
794  * @p name and @p version.
795  *
796  * Note: in case @p name is invalid or isn't for the org_kde_kwin_outputdevice interface,
797  * the returned OutputDevice will not be valid. Therefore it's recommended to call
798  * isValid on the created instance.
799  *
800  * @param name The name of the org_kde_kwin_outputdevice interface to bind
801  * @param version The version or the org_kde_kwin_outputdevice interface to use
802  * @param parent The parent for OutputDevice
803  *
804  * @returns The created Output.
805  * @since 5.5
806  **/
807  OutputDevice *createOutputDevice(quint32 name, quint32 version, QObject *parent = nullptr);
808  /**
809  * Creates a FullscreenShell and sets it up to manage the interface identified by
810  * @p name and @p version.
811  *
812  * Note: in case @p name is invalid or isn't for the _wl_fullscreen_shell interface,
813  * the returned FullscreenShell will not be valid. Therefore it's recommended to call
814  * isValid on the created instance.
815  *
816  * @param name The name of the _wl_fullscreen_shell interface to bind
817  * @param version The version or the _wl_fullscreen_shell interface to use
818  * @param parent The parent for FullscreenShell
819  *
820  * @returns The created FullscreenShell.
821  * @since 5.5
822  **/
823  FullscreenShell *createFullscreenShell(quint32 name, quint32 version, QObject *parent = nullptr);
824  /**
825  * Creates a DataDeviceManager and sets it up to manage the interface identified by
826  * @p name and @p version.
827  *
828  * Note: in case @p name is invalid or isn't for the wl_data_device_manager interface,
829  * the returned DataDeviceManager will not be valid. Therefore it's recommended to call
830  * isValid on the created instance.
831  *
832  * @param name The name of the wl_data_device_manager interface to bind
833  * @param version The version or the wl_data_device_manager interface to use
834  * @param parent The parent for DataDeviceManager
835  *
836  * @returns The created DataDeviceManager.
837  **/
838  DataDeviceManager *createDataDeviceManager(quint32 name, quint32 version, QObject *parent = nullptr);
839  /**
840  * Creates a PlasmaShell and sets it up to manage the interface identified by
841  * @p name and @p version.
842  *
843  * Note: in case @p name is invalid or isn't for the org_kde_plasma_shell interface,
844  * the returned PlasmaShell will not be valid. Therefore it's recommended to call
845  * isValid on the created instance.
846  *
847  * @param name The name of the org_kde_plasma_shell interface to bind
848  * @param version The version or the org_kde_plasma_shell interface to use
849  * @param parent The parent for PlasmaShell
850  *
851  * @returns The created PlasmaShell.
852  * @since 5.4
853  **/
854  PlasmaShell *createPlasmaShell(quint32 name, quint32 version, QObject *parent = nullptr);
855  /**
856  * Creates a PlasmaActivationFeedback and sets it up to manage the interface identified by
857  * @p name and @p version.
858  *
859  * Note: in case @p name is invalid or isn't for the org_kde_plasma_activation_feedback interface,
860  * the returned PlasmaActivationFeedback will not be valid. Therefore it's recommended to call
861  * isValid on the created instance.
862  *
863  * @param name The name of the org_kde_plasma_activation_feedback interface to bind
864  * @param version The version or the org_kde_plasma_activation_feedback interface to use
865  * @param parent The parent for PlasmaActivationFeedback
866  *
867  * @returns The created PlasmaActivationFeedback.
868  * @since 5.83
869  **/
870  PlasmaActivationFeedback *createPlasmaActivationFeedback(quint32 name, quint32 version, QObject *parent = nullptr);
871  /**
872  * Creates a PlasmaVirtualDesktopManagement and sets it up to manage the interface identified by
873  * @p name and @p version.
874  *
875  * Note: in case @p name is invalid or isn't for the org_kde_plasma_virtual_desktop_management interface,
876  * the returned VirtualDesktop will not be valid. Therefore it's recommended to call
877  * isValid on the created instance.
878  *
879  * @param name The name of the org_kde_plasma_virtual_desktop_management interface to bind
880  * @param version The version or the org_kde_plasma_virtual_desktop_management interface to use
881  * @param parent The parent for PlasmaShell
882  *
883  * @returns The created PlasmaShell.
884  * @since 5.52
885  **/
886  PlasmaVirtualDesktopManagement *createPlasmaVirtualDesktopManagement(quint32 name, quint32 version, QObject *parent = nullptr);
887  /**
888  * Creates a PlasmaWindowManagement and sets it up to manage the interface identified by
889  * @p name and @p version.
890  *
891  * Note: in case @p name is invalid or isn't for the org_kde_plasma_window_management interface,
892  * the returned PlasmaWindowManagement will not be valid. Therefore it's recommended to call
893  * isValid on the created instance.
894  *
895  * @param name The name of the org_kde_plasma_window_management interface to bind
896  * @param version The version or the org_kde_plasma_window_management interface to use
897  * @param parent The parent for PlasmaWindowManagement
898  *
899  * @returns The created PlasmaWindowManagement.
900  * @since 5.4
901  **/
902  PlasmaWindowManagement *createPlasmaWindowManagement(quint32 name, quint32 version, QObject *parent = nullptr);
903  /**
904  * Creates an Idle and sets it up to manage the interface identified by
905  * @p name and @p version.
906  *
907  * Note: in case @p name is invalid or isn't for the org_kde_kwin_idle interface,
908  * the returned Idle will not be valid. Therefore it's recommended to call
909  * isValid on the created instance.
910  *
911  * @param name The name of the org_kde_kwin_idle interface to bind
912  * @param version The version or the org_kde_kwin_idle interface to use
913  * @param parent The parent for Idle
914  *
915  * @returns The created Idle.
916  * @since 5.4
917  **/
918  Idle *createIdle(quint32 name, quint32 version, QObject *parent = nullptr);
919  /**
920  * Creates a Keystate and sets it up to manage the interface identified by
921  * @p name and @p version.
922  *
923  * Note: in case @p name is invalid or isn't for the org_kde_kwin_keystate interface,
924  * the returned Keystate will not be valid. Therefore it's recommended to call
925  * isValid on the created instance.
926  *
927  * @param name The name of the org_kde_kwin_keystate interface to bind
928  * @param version The version or the org_kde_kwin_keystate interface to use
929  * @param parent The parent for Keystate
930  *
931  * @returns The created Keystate.
932  * @since 5.60
933  **/
934  Keystate *createKeystate(quint32 name, quint32 version, QObject *parent = nullptr);
935  /**
936  * Creates a RemoteAccessManager and sets it up to manage the interface identified by
937  * @p name and @p version.
938  *
939  * Note: in case @p name is invalid or isn't for the org_kde_kwin_remote_access_manager interface,
940  * the returned RemoteAccessManager will not be valid. Therefore it's recommended to call
941  * isValid on the created instance.
942  *
943  * @param name The name of the org_kde_kwin_remote_access_manager interface to bind
944  * @param version The version or the org_kde_kwin_remote_access_manager interface to use
945  * @param parent The parent for RemoteAccessManager
946  *
947  * @returns The created RemoteAccessManager.
948  * @since 5.45
949  **/
950  RemoteAccessManager *createRemoteAccessManager(quint32 name, quint32 version, QObject *parent = nullptr);
951  /**
952  * Creates a FakeInput and sets it up to manage the interface identified by
953  * @p name and @p version.
954  *
955  * Note: in case @p name is invalid or isn't for the org_kde_kwin_fake_input interface,
956  * the returned FakeInput will not be valid. Therefore it's recommended to call
957  * isValid on the created instance.
958  *
959  * @param name The name of the org_kde_kwin_fake_input interface to bind
960  * @param version The version or the org_kde_kwin_fake_input interface to use
961  * @param parent The parent for FakeInput
962  *
963  * @returns The created FakeInput.
964  * @since 5.4
965  **/
966  FakeInput *createFakeInput(quint32 name, quint32 version, QObject *parent = nullptr);
967  /**
968  * Creates a ShadowManager and sets it up to manage the interface identified by
969  * @p name and @p version.
970  *
971  * Note: in case @p name is invalid or isn't for the org_kde_kwin_shadow_manager interface,
972  * the returned ShadowManager will not be valid. Therefore it's recommended to call
973  * isValid on the created instance.
974  *
975  * @param name The name of the org_kde_kwin_shadow_manager interface to bind
976  * @param version The version or the org_kde_kwin_shadow_manager interface to use
977  * @param parent The parent for ShadowManager
978  *
979  * @returns The created ShadowManager.
980  * @since 5.4
981  **/
982  ShadowManager *createShadowManager(quint32 name, quint32 version, QObject *parent = nullptr);
983  /**
984  * Creates a BlurManager and sets it up to manage the interface identified by
985  * @p name and @p version.
986  *
987  * Note: in case @p name is invalid or isn't for the org_kde_kwin_blur_manager interface,
988  * the returned BlurManager will not be valid. Therefore it's recommended to call
989  * isValid on the created instance.
990  *
991  * @param name The name of the org_kde_kwin_blur_manager interface to bind
992  * @param version The version or the org_kde_kwin_blur_manager interface to use
993  * @param parent The parent for BlurManager
994  *
995  * @returns The created BlurManager.
996  * @since 5.5
997  **/
998  BlurManager *createBlurManager(quint32 name, quint32 version, QObject *parent = nullptr);
999  /**
1000  * Creates a ContrastManager and sets it up to manage the interface identified by
1001  * @p name and @p version.
1002  *
1003  * Note: in case @p name is invalid or isn't for the org_kde_kwin_contrast_manager interface,
1004  * the returned ContrastManager will not be valid. Therefore it's recommended to call
1005  * isValid on the created instance.
1006  *
1007  * @param name The name of the org_kde_kwin_contrast_manager interface to bind
1008  * @param version The version or the org_kde_kwin_contrast_manager interface to use
1009  * @param parent The parent for ContrastManager
1010  *
1011  * @returns The created ContrastManager.
1012  * @since 5.5
1013  **/
1014  ContrastManager *createContrastManager(quint32 name, quint32 version, QObject *parent = nullptr);
1015  /**
1016  * Creates a SlideManager and sets it up to manage the interface identified by
1017  * @p name and @p version.
1018  *
1019  * Note: in case @p name is invalid or isn't for the org_kde_kwin_slide_manager interface,
1020  * the returned SlideManager will not be valid. Therefore it's recommended to call
1021  * isValid on the created instance.
1022  *
1023  * @param name The name of the org_kde_kwin_slide_manager interface to bind
1024  * @param version The version or the org_kde_kwin_slide_manager interface to use
1025  * @param parent The parent for SlideManager
1026  *
1027  * @returns The created SlideManager.
1028  * @since 5.5
1029  **/
1030  SlideManager *createSlideManager(quint32 name, quint32 version, QObject *parent = nullptr);
1031  /**
1032  * Creates a DpmsManager and sets it up to manage the interface identified by
1033  * @p name and @p version.
1034  *
1035  * Note: in case @p name is invalid or isn't for the org_kde_kwin_dpms_manager interface,
1036  * the returned DpmsManager will not be valid. Therefore it's recommended to call
1037  * isValid on the created instance.
1038  *
1039  * @param name The name of the org_kde_kwin_dpms_manager interface to bind
1040  * @param version The version or the org_kde_kwin_dpms_manager interface to use
1041  * @param parent The parent for DpmsManager
1042  *
1043  * @returns The created DpmsManager.
1044  * @since 5.5
1045  **/
1046  DpmsManager *createDpmsManager(quint32 name, quint32 version, QObject *parent = nullptr);
1047  /**
1048  * Creates a ServerSideDecorationManager and sets it up to manage the interface identified by
1049  * @p name and @p version.
1050  *
1051  * Note: in case @p name is invalid or isn't for the org_kde_kwin_server_decoration_manager interface,
1052  * the returned ServerSideDecorationManager will not be valid. Therefore it's recommended to call
1053  * isValid on the created instance.
1054  *
1055  * @param name The name of the org_kde_kwin_server_decoration_manager interface to bind
1056  * @param version The version or the org_kde_kwin_server_decoration_manager interface to use
1057  * @param parent The parent for ServerSideDecorationManager
1058  *
1059  * @returns The created ServerSideDecorationManager.
1060  * @since 5.6
1061  **/
1062  ServerSideDecorationManager *createServerSideDecorationManager(quint32 name, quint32 version, QObject *parent = nullptr);
1063  /**
1064  * Creates a TextInputManager and sets it up to manage the interface identified by
1065  * @p name and @p version.
1066  *
1067  * This factory method supports the following interfaces:
1068  * @li wl_text_input_manager
1069  * @li zwp_text_input_manager_v2
1070  *
1071  * If @p name is for one of the supported interfaces the corresponding manager will be created,
1072  * otherwise @c null will be returned.
1073  *
1074  * @param name The name of the interface to bind
1075  * @param version The version of the interface to use
1076  * @param parent The parent for the TextInputManager
1077  *
1078  * @returns The created TextInputManager
1079  * @since 5.23
1080  **/
1081  TextInputManager *createTextInputManager(quint32 name, quint32 version, QObject *parent = nullptr);
1082  /**
1083  * Creates an XdgShell and sets it up to manage the interface identified by
1084  * @p name and @p version.
1085  *
1086  * This factory method supports the following interfaces:
1087  * @li xdg_shell (Unstable version 5)
1088  *
1089  * If @p name is for one of the supported interfaces the corresponding shell will be created,
1090  * otherwise @c null will be returned.
1091  *
1092  * @param name The name of the interface to bind
1093  * @param version The version of the interface to use
1094  * @param parent The parent for the XdgShell
1095  *
1096  * @returns The created XdgShell
1097  * @since 5.25
1098  **/
1099  XdgShell *createXdgShell(quint32 name, quint32 version, QObject *parent = nullptr);
1100  /**
1101  * Creates a RelativePointerManager and sets it up to manage the interface identified by
1102  * @p name and @p version.
1103  *
1104  * This factory method supports the following interfaces:
1105  * @li zwp_relative_pointer_manager_v1
1106  *
1107  * If @p name is for one of the supported interfaces the corresponding manager will be created,
1108  * otherwise @c null will be returned.
1109  *
1110  * @param name The name of the interface to bind
1111  * @param version The version of the interface to use
1112  * @param parent The parent for the RelativePointerManager
1113  *
1114  * @returns The created RelativePointerManager
1115  * @since 5.28
1116  **/
1117  RelativePointerManager *createRelativePointerManager(quint32 name, quint32 version, QObject *parent = nullptr);
1118  /**
1119  * Creates a PointerGestures and sets it up to manage the interface identified by
1120  * @p name and @p version.
1121  *
1122  * This factory method supports the following interfaces:
1123  * @li zwp_pointer_gestures_v1
1124  *
1125  * If @p name is for one of the supported interfaces the corresponding manager will be created,
1126  * otherwise @c null will be returned.
1127  *
1128  * @param name The name of the interface to bind
1129  * @param version The version of the interface to use
1130  * @param parent The parent for the PointerGestures
1131  *
1132  * @returns The created PointerGestures
1133  * @since 5.29
1134  **/
1135  PointerGestures *createPointerGestures(quint32 name, quint32 version, QObject *parent = nullptr);
1136  /**
1137  * Creates a PointerConstraints and sets it up to manage the interface identified by
1138  * @p name and @p version.
1139  *
1140  * This factory method supports the following interfaces:
1141  * @li zwp_pointer_constraints_v1
1142  *
1143  * If @p name is for one of the supported interfaces the corresponding manager will be created,
1144  * otherwise @c null will be returned.
1145  *
1146  * @param name The name of the interface to bind
1147  * @param version The version of the interface to use
1148  * @param parent The parent for the PointerConstraints
1149  *
1150  * @returns The created PointerConstraints
1151  * @since 5.29
1152  **/
1153  PointerConstraints *createPointerConstraints(quint32 name, quint32 version, QObject *parent = nullptr);
1154 
1155  /**
1156  * Creates an XdgExporter and sets it up to manage the interface identified by
1157  * @p name and @p version.
1158  *
1159  * This factory method supports the following interfaces:
1160  * @li zxdg_exporter_v2
1161  *
1162  * If @p name is for one of the supported interfaces the corresponding manager will be created,
1163  * otherwise @c null will be returned.
1164  *
1165  * @returns The created XdgExporter
1166  * @since 5.40
1167  */
1168  XdgExporter *createXdgExporter(quint32 name, quint32 version, QObject *parent = nullptr);
1169 
1170  /**
1171  * Creates an XdgImporter and sets it up to manage the interface identified by
1172  * @p name and @p version.
1173  *
1174  * This factory method supports the following interfaces:
1175  * @li zxdg_importer_v2
1176  *
1177  * If @p name is for one of the supported interfaces the corresponding manager will be created,
1178  * otherwise @c null will be returned.
1179  *
1180  * @returns The created XdgImporter
1181  * @since 5.40
1182  */
1183  XdgImporter *createXdgImporter(quint32 name, quint32 version, QObject *parent = nullptr);
1184 
1185  /**
1186  * Creates an IdleInhibitManager and sets it up to manage the interface identified by
1187  * @p name and @p version.
1188  *
1189  * This factory method supports the following interfaces:
1190  * @li zwp_idle_inhibit_manager_v1
1191  *
1192  * If @p name is for one of the supported interfaces the corresponding manager will be created,
1193  * otherwise @c null will be returned.
1194  *
1195  * @returns The created IdleInhibitManager
1196  * @since 5.41
1197  */
1198  IdleInhibitManager *createIdleInhibitManager(quint32 name, quint32 version, QObject *parent = nullptr);
1199 
1200  /**
1201  * Creates a AppMenuManager and sets it up to manage the interface identified by
1202  * @p name and @p version.
1203  *
1204  * Note: in case @p name is invalid or isn't for the org_kde_kwin_appmenu_manager interface,
1205  * the returned AppMenuManager will not be valid. Therefore it's recommended to call
1206  * isValid on the created instance.
1207  *
1208  * @param name The name of the org_kde_kwin_appmenu_manager interface to bind
1209  * @param version The version or the org_kde_kwin_appmenu_manager interface to use
1210  * @param parent The parent for AppMenuManager
1211  *
1212  * @returns The created AppMenuManager.
1213  * @since 5.42
1214  **/
1215  AppMenuManager *createAppMenuManager(quint32 name, quint32 version, QObject *parent = nullptr);
1216 
1217  /**
1218  * Creates a ServerSideDecorationPaletteManager and sets it up to manage the interface identified by
1219  * @p name and @p version.
1220  *
1221  * Note: in case @p name is invalid or isn't for the org_kde_kwin_appmenu_manager interface,
1222  * the returned ServerSideDecorationPaletteManager will not be valid. Therefore it's recommended to call
1223  * isValid on the created instance.
1224  *
1225  * @param name The name of the org_kde_kwin_server_decoration_palette_manager interface to bind
1226  * @param version The version or the org_kde_kwin_server_decoration_palette_manager interface to use
1227  * @param parent The parent for ServerSideDecorationPaletteManager
1228  *
1229  * @returns The created ServerSideDecorationPaletteManager.
1230  * @since 5.42
1231  **/
1232  ServerSideDecorationPaletteManager *createServerSideDecorationPaletteManager(quint32 name, quint32 version, QObject *parent = nullptr);
1233 
1234  /**
1235  * Creates an XdgOutputManager and sets it up to manage the interface identified by
1236  * @p name and @p version.
1237  *
1238  * Note: in case @p name is invalid or isn't for the zxdg_output_manager_v1 interface,
1239  * the returned XdgOutputManager will not be valid. Therefore it's recommended to call
1240  * isValid on the created instance.
1241  *
1242  * @param name The name of the zxdg_output_manager_v1 interface to bind
1243  * @param version The version or the zxdg_output_manager_v1 interface to use
1244  * @param parent The parent for XdgOuptutManager
1245  *
1246  * @returns The created XdgOuptutManager.
1247  * @since 5.47
1248  **/
1249  XdgOutputManager *createXdgOutputManager(quint32 name, quint32 version, QObject *parent = nullptr);
1250 
1251  /**
1252  * Creates an XdgDecorationManager and sets it up to manage the interface identified by
1253  * @p name and @p version.
1254  *
1255  * Note: in case @p name is invalid or isn't for the zxdg_decoration_manager_v1 interface,
1256  * the returned XdgDecorationManager will not be valid. Therefore it's recommended to call
1257  * isValid on the created instance.
1258  *
1259  * @param name The name of the zxdg_decoration_manager_v1 interface to bind
1260  * @param version The version or the zxdg_decoration_manager_v1 interface to use
1261  * @param parent The parent for XdgDecorationManager
1262  *
1263  * @returns The created XdgDecorationManager.
1264  * @since 5.54
1265  **/
1266  XdgDecorationManager *createXdgDecorationManager(quint32 name, quint32 version, QObject *parent = nullptr);
1267 
1268  ///@}
1269 
1270  /**
1271  * cast operator to the low-level Wayland @c wl_registry
1272  **/
1273  operator wl_registry *();
1274  /**
1275  * cast operator to the low-level Wayland @c wl_registry
1276  **/
1277  operator wl_registry *() const;
1278  /**
1279  * @returns access to the low-level Wayland @c wl_registry
1280  **/
1281  wl_registry *registry();
1282 
1283 Q_SIGNALS:
1284  /**
1285  * @name Interface announced signals.
1286  **/
1287  ///@{
1288  /**
1289  * Emitted whenever a wl_compositor interface gets announced.
1290  * @param name The name for the announced interface
1291  * @param version The maximum supported version of the announced interface
1292  **/
1293  void compositorAnnounced(quint32 name, quint32 version);
1294  /**
1295  * Emitted whenever a wl_shell interface gets announced.
1296  * @param name The name for the announced interface
1297  * @param version The maximum supported version of the announced interface
1298  **/
1299  void shellAnnounced(quint32 name, quint32 version);
1300  /**
1301  * Emitted whenever a wl_seat interface gets announced.
1302  * @param name The name for the announced interface
1303  * @param version The maximum supported version of the announced interface
1304  **/
1305  void seatAnnounced(quint32 name, quint32 version);
1306  /**
1307  * Emitted whenever a wl_shm interface gets announced.
1308  * @param name The name for the announced interface
1309  * @param version The maximum supported version of the announced interface
1310  **/
1311  void shmAnnounced(quint32 name, quint32 version);
1312  /**
1313  * Emitted whenever a wl_subcompositor interface gets announced.
1314  * @param name The name for the announced interface
1315  * @param version The maximum supported version of the announced interface
1316  **/
1317  void subCompositorAnnounced(quint32 name, quint32 version);
1318  /**
1319  * Emitted whenever a wl_output interface gets announced.
1320  * @param name The name for the announced interface
1321  * @param version The maximum supported version of the announced interface
1322  **/
1323  void outputAnnounced(quint32 name, quint32 version);
1324  /**
1325  * Emitted whenever a _wl_fullscreen_shell interface gets announced.
1326  * @param name The name for the announced interface
1327  * @param version The maximum supported version of the announced interface
1328  **/
1329  void fullscreenShellAnnounced(quint32 name, quint32 version);
1330  /**
1331  * Emitted whenever a wl_data_device_manager interface gets announced.
1332  * @param name The name for the announced interface
1333  * @param version The maximum supported version of the announced interface
1334  **/
1335  void dataDeviceManagerAnnounced(quint32 name, quint32 version);
1336 
1337  void outputManagementAnnounced(quint32 name, quint32 version);
1338  /**
1339  * Emitted whenever a org_kde_kwin_outputdevice interface gets announced.
1340  * @param name The name for the announced interface
1341  * @param version The maximum supported version of the announced interface
1342  * @since 5.5
1343  **/
1344  void outputDeviceAnnounced(quint32 name, quint32 version);
1345  /**
1346  * Emitted whenever a org_kde_plasma_shell interface gets announced.
1347  * @param name The name for the announced interface
1348  * @param version The maximum supported version of the announced interface
1349  * @since 5.4
1350  **/
1351  void plasmaShellAnnounced(quint32 name, quint32 version);
1352  /**
1353  * Emitted whenever a org_kde_plasma_activation_feedback interface gets announced.
1354  * @param name The name for the announced interface
1355  * @param version The maximum supported version of the announced interface
1356  * @since 5.83
1357  **/
1358  void plasmaActivationFeedbackAnnounced(quint32 name, quint32 version);
1359  /**
1360  * Emitted whenever a org_kde_plasma_virtual_desktop_management interface gets announced.
1361  * @param name The name for the announced interface
1362  * @param version The maximum supported version of the announced interface
1363  * @since 5.52
1364  **/
1365  void plasmaVirtualDesktopManagementAnnounced(quint32 name, quint32 version);
1366  /**
1367  * Emitted whenever a org_kde_plasma_window_management interface gets announced.
1368  * @param name The name for the announced interface
1369  * @param version The maximum supported version of the announced interface
1370  * @since 5.4
1371  **/
1372  void plasmaWindowManagementAnnounced(quint32 name, quint32 version);
1373  /**
1374  * Emitted whenever a org_kde_kwin_idle interface gets announced.
1375  * @param name The name for the announced interface
1376  * @param version The maximum supported version of the announced interface
1377  * @since 5.4
1378  **/
1379  void idleAnnounced(quint32 name, quint32 version);
1380  /**
1381  * Emitted whenever a org_kde_kwin_remote_access_manager interface gets announced.
1382  * @param name The name for the announced interface
1383  * @param version The maximum supported version of the announced interface
1384  * @since 5.45
1385  **/
1386  void remoteAccessManagerAnnounced(quint32 name, quint32 version);
1387  /**
1388  * Emitted whenever a org_kde_kwin_fake_input interface gets announced.
1389  * @param name The name for the announced interface
1390  * @param version The maximum supported version of the announced interface
1391  * @since 5.4
1392  **/
1393  void fakeInputAnnounced(quint32 name, quint32 version);
1394  /**
1395  * Emitted whenever a org_kde_kwin_shadow_manager interface gets announced.
1396  * @param name The name for the announced interface
1397  * @param version The maximum supported version of the announced interface
1398  * @since 5.4
1399  **/
1400  void shadowAnnounced(quint32 name, quint32 version);
1401  /**
1402  * Emitted whenever a org_kde_kwin_blur_manager interface gets announced.
1403  * @param name The name for the announced interface
1404  * @param version The maximum supported version of the announced interface
1405  * @since 5.5
1406  **/
1407  void blurAnnounced(quint32 name, quint32 version);
1408  /**
1409  * Emitted whenever a org_kde_kwin_contrast_manager interface gets announced.
1410  * @param name The name for the announced interface
1411  * @param version The maximum supported version of the announced interface
1412  * @since 5.5
1413  **/
1414  void contrastAnnounced(quint32 name, quint32 version);
1415  /**
1416  * Emitted whenever a org_kde_kwin_slide_manager interface gets announced.
1417  * @param name The name for the announced interface
1418  * @param version The maximum supported version of the announced interface
1419  * @since 5.5
1420  **/
1421  void slideAnnounced(quint32 name, quint32 version);
1422  /**
1423  * Emitted whenever a org_kde_kwin_dpms_manager interface gets announced.
1424  * @param name The name for the announced interface
1425  * @param version The maximum supported version of the announced interface
1426  * @since 5.5
1427  **/
1428  void dpmsAnnounced(quint32 name, quint32 version);
1429  /**
1430  * Emitted whenever a org_kde_kwin_server_decoration_manager interface gets announced.
1431  * @param name The name for the announced interface
1432  * @param version The maximum supported version of the announced interface
1433  * @since 5.6
1434  **/
1435  void serverSideDecorationManagerAnnounced(quint32 name, quint32 version);
1436  /**
1437  * Emitted whenever a wl_text_input_manager interface gets announced.
1438  * @param name The name for the announced interface
1439  * @param version The maximum supported version of the announced interface
1440  * @since 5.23
1441  **/
1442  void textInputManagerUnstableV0Announced(quint32 name, quint32 version);
1443  /**
1444  * Emitted whenever a zwp_text_input_manager_v2 interface gets announced.
1445  * @param name The name for the announced interface
1446  * @param version The maximum supported version of the announced interface
1447  * @since 5.23
1448  **/
1449  void textInputManagerUnstableV2Announced(quint32 name, quint32 version);
1450  /**
1451  * Emitted whenever a xdg_shell (unstable version 5) interface gets announced.
1452  * @param name The name for the announced interface
1453  * @param version The maximum supported version of the announced interface
1454  * @since 5.25
1455  **/
1456  void xdgShellUnstableV5Announced(quint32 name, quint32 version);
1457  /**
1458  * Emitted whenever a zxdg_shell_v6 (unstable version 6) interface gets announced.
1459  * @param name The name for the announced interface
1460  * @param version The maximum supported version of the announced interface
1461  * @since 5.25
1462  **/
1463  void xdgShellUnstableV6Announced(quint32 name, quint32 version);
1464 
1465  /**
1466  * Emitted whenever a zwp_relative_pointer_manager_v1 interface gets announced.
1467  * @param name The name for the announced interface
1468  * @param version The maximum supported version of the announced interface
1469  * @since 5.28
1470  **/
1471  void relativePointerManagerUnstableV1Announced(quint32 name, quint32 version);
1472  /**
1473  * Emitted whenever a zwp_pointer_gestures_v1 interface gets announced.
1474  * @param name The name for the announced interface
1475  * @param version The maximum supported version of the announced interface
1476  * @since 5.29
1477  **/
1478  void pointerGesturesUnstableV1Announced(quint32 name, quint32 version);
1479  /**
1480  * Emitted whenever a zwp_pointer_constraints_v1 interface gets announced.
1481  * @param name The name for the announced interface
1482  * @param version The maximum supported version of the announced interface
1483  * @since 5.29
1484  **/
1485  void pointerConstraintsUnstableV1Announced(quint32 name, quint32 version);
1486 
1487  /**
1488  * Emitted whenever a zxdg_exporter_v2 interface gets announced.
1489  * @param name The name for the announced interface
1490  * @param version The maximum supported version of the announced interface
1491  * @since 5.40
1492  */
1493  void exporterUnstableV2Announced(quint32 name, quint32 version);
1494 
1495  /**
1496  * Emitted whenever a zxdg_importer_v2 interface gets announced.
1497  * @param name The name for the announced interface
1498  * @param version The maximum supported version of the announced interface
1499  * @since 5.40
1500  */
1501  void importerUnstableV2Announced(quint32 name, quint32 version);
1502 
1503  /**
1504  * Emitted whenever a zwp_idle_inhibit_manager_v1 interface gets announced.
1505  * @param name The name for the announced interface
1506  * @param version The maximum supported version of the announced interface
1507  * @since 5.41
1508  */
1509  void idleInhibitManagerUnstableV1Announced(quint32 name, quint32 version);
1510 
1511  /**
1512  * Emitted whenever a org_kde_kwin_appmenu_manager interface gets announced.
1513  * @param name The name for the announced interface
1514  * @param version The maximum supported version of the announced interface
1515  * @since 5.42
1516  */
1517  void appMenuAnnounced(quint32 name, quint32 version);
1518 
1519  /**
1520  * Emitted whenever a org_kde_kwin_server_decoration_palette_manager interface gets announced.
1521  * @param name The name for the announced interface
1522  * @param version The maximum supported version of the announced interface
1523  * @since 5.42
1524  */
1525  void serverSideDecorationPaletteManagerAnnounced(quint32 name, quint32 version);
1526 
1527  /**
1528  * Emitted whenever a zxdg_output_v1 interface gets announced.
1529  * @param name The name for the announced interface
1530  * @param version The maximum supported version of the announced interface
1531  * @since 5.47
1532  */
1533  void xdgOutputAnnounced(quint32 name, quint32 version);
1534 
1535  /**
1536  * Emitted whenever a xdg_wm_base (stable xdg shell) interface gets announced.
1537  * @param name The name for the announced interface
1538  * @param version The maximum supported version of the announced interface
1539  * @since 5.48
1540  **/
1541  void xdgShellStableAnnounced(quint32 name, quint32 version);
1542 
1543  /**
1544  * Emitted whenever a zxdg_decoration_manager_v1 interface gets announced.
1545  * @param name The name for the announced interface
1546  * @param version The maximum supported version of the announced interface
1547  * @since 5.54
1548  **/
1549  void xdgDecorationAnnounced(quint32 name, quint32 version);
1550 
1551  /**
1552  * Emitted whenever a org_kde_kwin_keystate interface gets announced.
1553  * @param name The name for the announced interface
1554  * @param version The maximum supported version of the announced interface
1555  * @since 5.60
1556  **/
1557  void keystateAnnounced(quint32 name, quint32 version);
1558 
1559  ///@}
1560 
1561  /**
1562  * @name Interface removed signals.
1563  **/
1564  ///@{
1565  /**
1566  * Emitted whenever a wl_compositor interface gets removed.
1567  * @param name The name for the removed interface
1568  **/
1569  void compositorRemoved(quint32 name);
1570  /**
1571  * Emitted whenever a wl_shell interface gets removed.
1572  * @param name The name for the removed interface
1573  **/
1574  void shellRemoved(quint32 name);
1575  /**
1576  * Emitted whenever a wl_seat interface gets removed.
1577  * @param name The name for the removed interface
1578  **/
1579  void seatRemoved(quint32 name);
1580  /**
1581  * Emitted whenever a wl_shm interface gets removed.
1582  * @param name The name for the removed interface
1583  **/
1584  void shmRemoved(quint32 name);
1585  /**
1586  * Emitted whenever a wl_subcompositor interface gets removed.
1587  * @param name The name for the removed interface
1588  **/
1589  void subCompositorRemoved(quint32 name);
1590  /**
1591  * Emitted whenever a wl_output interface gets removed.
1592  * @param name The name for the removed interface
1593  **/
1594  void outputRemoved(quint32 name);
1595  /**
1596  * Emitted whenever a _wl_fullscreen_shell interface gets removed.
1597  * @param name The name for the removed interface
1598  **/
1599  void fullscreenShellRemoved(quint32 name);
1600  /**
1601  * Emitted whenever a wl_data_device_manager interface gets removed.
1602  * @param name The name for the removed interface
1603  **/
1604  void dataDeviceManagerRemoved(quint32 name);
1605  /**
1606  * Emitted whenever a org_kde_kwin_outputmanagement interface gets removed.
1607  * @param name The name for the removed interface
1608  * @since 5.5
1609  **/
1610  void outputManagementRemoved(quint32 name);
1611  /**
1612  * Emitted whenever a org_kde_kwin_outputdevice interface gets removed.
1613  * @param name The name for the removed interface
1614  * @since 5.5
1615  **/
1616  void outputDeviceRemoved(quint32 name);
1617  /**
1618  * Emitted whenever a org_kde_plasma_shell interface gets removed.
1619  * @param name The name for the removed interface
1620  * @since 5.4
1621  **/
1622  void plasmaShellRemoved(quint32 name);
1623  /**
1624  * Emitted whenever a org_kde_plasma_activation_feedback interface gets removed.
1625  * @param name The name for the removed interface
1626  * @since 5.83
1627  **/
1628  void plasmaActivationFeedbackRemoved(quint32 name);
1629  /**
1630  * Emitted whenever a org_kde_plasma_virtual_desktop_management interface gets removed.
1631  * @param name The name for the removed interface
1632  * @since 5.52
1633  **/
1634  void plasmaVirtualDesktopManagementRemoved(quint32 name);
1635  /**
1636  * Emitted whenever a org_kde_plasma_window_management interface gets removed.
1637  * @param name The name for the removed interface
1638  * @since 5.4
1639  **/
1640  void plasmaWindowManagementRemoved(quint32 name);
1641  /**
1642  * Emitted whenever a org_kde_kwin_idle interface gets removed.
1643  * @param name The name for the removed interface
1644  * @since 5.4
1645  **/
1646  void idleRemoved(quint32 name);
1647  /**
1648  * Emitted whenever a org_kde_kwin_remote_access_manager interface gets removed.
1649  * @param name The name for the removed interface
1650  * @since 5.45
1651  **/
1652  void remoteAccessManagerRemoved(quint32 name);
1653  /**
1654  * Emitted whenever a org_kde_kwin_fake_input interface gets removed.
1655  * @param name The name for the removed interface
1656  * @since 5.4
1657  **/
1658  void fakeInputRemoved(quint32 name);
1659  /**
1660  * Emitted whenever a org_kde_kwin_shadow_manager interface gets removed.
1661  * @param name The name for the removed interface
1662  * @since 5.4
1663  **/
1664  void shadowRemoved(quint32 name);
1665  /**
1666  * Emitted whenever a org_kde_kwin_blur_manager interface gets removed.
1667  * @param name The name for the removed interface
1668  * @since 5.5
1669  **/
1670  void blurRemoved(quint32 name);
1671  /**
1672  * Emitted whenever a org_kde_kwin_contrast_manager interface gets removed.
1673  * @param name The name for the removed interface
1674  * @since 5.5
1675  **/
1676  void contrastRemoved(quint32 name);
1677  /**
1678  * Emitted whenever a org_kde_kwin_slide_manager interface gets removed.
1679  * @param name The name for the removed interface
1680  * @since 5.5
1681  **/
1682  void slideRemoved(quint32 name);
1683  /**
1684  * Emitted whenever a org_kde_kwin_dpms_manager interface gets removed.
1685  * @param name The name for the removed interface
1686  * @since 5.5
1687  **/
1688  void dpmsRemoved(quint32 name);
1689  /**
1690  * Emitted whenever a org_kde_kwin_server_decoration_manager interface gets removed.
1691  * @param name The name for the removed interface
1692  * @since 5.6
1693  **/
1694  void serverSideDecorationManagerRemoved(quint32 name);
1695  /**
1696  * Emitted whenever a wl_text_input_manager interface gets removed.
1697  * @param name The name for the removed interface
1698  * @since 5.23
1699  **/
1700  void textInputManagerUnstableV0Removed(quint32 name);
1701  /**
1702  * Emitted whenever a zwp_text_input_manager_v2 interface gets removed.
1703  * @param name The name for the removed interface
1704  * @since 5.23
1705  **/
1706  void textInputManagerUnstableV2Removed(quint32 name);
1707  /**
1708  * Emitted whenever an xdg_shell (unstable version 5) interface gets removed.
1709  * @param name The name for the removed interface
1710  * @since 5.25
1711  **/
1712  void xdgShellUnstableV5Removed(quint32 name);
1713  /**
1714  * Emitted whenever an xdg_shell (unstable version 5) interface gets removed.
1715  * @param name The name for the removed interface
1716  * @since 5.25
1717  **/
1718  void xdgShellUnstableV6Removed(quint32 name);
1719  /**
1720  * Emitted whenever a zwp_relative_pointer_manager_v1 interface gets removed.
1721  * @param name The name for the removed interface
1722  * @since 5.28
1723  **/
1724  void relativePointerManagerUnstableV1Removed(quint32 name);
1725  /**
1726  * Emitted whenever a zwp_pointer_gestures_v1 interface gets removed.
1727  * @param name The name for the removed interface
1728  * @since 5.29
1729  **/
1730  void pointerGesturesUnstableV1Removed(quint32 name);
1731  /**
1732  * Emitted whenever a zwp_pointer_constraints_v1 interface gets removed.
1733  * @param name The name for the removed interface
1734  * @since 5.29
1735  **/
1736  void pointerConstraintsUnstableV1Removed(quint32 name);
1737 
1738  /**
1739  * Emitted whenever a zxdg_exporter_v2 interface gets removed.
1740  * @param name The name for the removed interface
1741  * @since 5.40
1742  **/
1743  void exporterUnstableV2Removed(quint32 name);
1744 
1745  /**
1746  * Emitted whenever a zxdg_importer_v2 interface gets removed.
1747  * @param name The name for the removed interface
1748  * @since 5.40
1749  **/
1750  void importerUnstableV2Removed(quint32 name);
1751 
1752  /**
1753  * Emitted whenever a zwp_idle_inhibit_manager_v1 interface gets removed.
1754  * @param name The name of the removed interface
1755  * @since 5.41
1756  **/
1757  void idleInhibitManagerUnstableV1Removed(quint32 name);
1758 
1759  /**
1760  * Emitted whenever a org_kde_kwin_appmenu_manager gets removed.
1761  * @param name The name of the removed interface
1762  * @since 5.42
1763  **/
1764  void appMenuRemoved(quint32 name);
1765 
1766  /**
1767  * Emitted whenever a org_kde_kwin_server_decoration_palette_manager gets removed.
1768  * @param name The name of the removed interface
1769  * @since 5.42
1770  **/
1771  void serverSideDecorationPaletteManagerRemoved(quint32 name);
1772 
1773  /**
1774  * Emitted whenever a zxdg_output_v1 gets removed.
1775  * @param name The name of the removed interface
1776  * @since 5.47
1777  **/
1778  void xdgOutputRemoved(quint32 name);
1779  /**
1780  * Emitted whenever an xdg_wm_base (stable xdgshell) interface gets removed.
1781  * @param name The name for the removed interface
1782  * @since 5.48
1783  **/
1784  void xdgShellStableRemoved(quint32 name);
1785 
1786  /**
1787  * Emitted whenever a zxdg_decoration_manager_v1 gets removed.
1788  * @param name The name of the removed interface
1789  * @since 5.54
1790  **/
1791  void xdgDecorationRemoved(quint32 name);
1792 
1793  /**
1794  * Emitted whenever a org_kde_kwin_keystate gets removed.
1795  * @param name The name of the removed interface
1796  * @since 5.60
1797  **/
1798  void keystateRemoved(quint32 name);
1799 
1800  ///@}
1801  /**
1802  * Generic announced signal which gets emitted whenever an interface gets
1803  * announced.
1804  *
1805  * This signal is emitted before the dedicated signals are handled. If one
1806  * wants to know about one of the well-known interfaces use the dedicated
1807  * signals instead. Especially the bind methods might fail before the dedicated
1808  * signals are emitted.
1809  *
1810  * @param interface The interface (e.g. wl_compositor) which is announced
1811  * @param name The name for the announced interface
1812  * @param version The maximum supported version of the announced interface
1813  **/
1814  void interfaceAnnounced(QByteArray interface, quint32 name, quint32 version);
1815  /**
1816  * Generic removal signal which gets emitted whenever an interface gets removed.
1817  *
1818  * This signal is emitted after the dedicated signals are handled.
1819  *
1820  * @param name The name for the removed interface
1821  **/
1822  void interfaceRemoved(quint32 name);
1823  /**
1824  * Emitted when the Wayland display is done flushing the initial interface
1825  * callbacks, announcing wl_display properties. This can be used to compress
1826  * events. Note that this signal is emitted only after announcing interfaces,
1827  * such as outputs, but not after receiving callbacks of interface properties,
1828  * such as the output's geometry, modes, etc..
1829  * This signal is emitted from the wl_display_sync callback.
1830  **/
1831  void interfacesAnnounced();
1832 
1833 Q_SIGNALS:
1834  /*
1835  * Emitted when the registry has been destroyed rather than released
1836  */
1837  void registryDestroyed();
1838 
1839 private:
1840  class Private;
1842 };
1843 
1844 }
1845 }
1846 
1847 #endif
Wrapper for the org_kde_kwin_blur interface.
Definition: blur.h:132
Wrapper for the zxdg_exporter_v2 interface.
Definition: xdgforeign.h:52
Wrapper for the zxdg_exporter_v2 interface.
Definition: xdgforeign_v2.h:51
Wrapper for the org_kde_kwin_contrast interface.
Definition: contrast.h:130
Wrapper for the org_kde_kwin_server_decoration_palette_manager interface.
Wrapper for the _wl_fullscreen_shell interface.
Wrapper for the xdg_shell interface.
Definition: xdgshell.h:155
Wrapper for the zwp_pointer_constraints_v1 interface.
quint32 version
The maximum supported version of the announced interface.
Definition: registry.h:257
Wrapper class for wl_shm interface.
Definition: shm_pool.h:115
Wrapper for the zxdg_importer_v2 interface.
Definition: xdgforeign_v2.h:91
Manager class for the TextInputManager interfaces.
Definition: textinput.h:415
Wrapper class for wl_event_queue interface.
Definition: event_queue.h:54
Wrapper for the wl_compositor interface.
Definition: compositor.h:49
Wrapper for the wl_registry interface.
Definition: registry.h:129
Wrapper for the wl_seat interface.
Definition: seat.h:51
Wrapper for the org_kde_kwin_remote_access_manager interface.
Definition: remote_access.h:47
Wrapper for the wl_output interface.
Definition: output.h:54
Wrapper for the org_kde_plasma_virtual_desktop_management interface.
Wrapper for the zxdg_decoration_manager_v1 interface.
Definition: xdgdecoration.h:50
Wrapper for the org_kde_kwin_shadow interface.
Definition: shadow.h:149
Wrapper for the zxdg_importer_v2 interface.
Definition: xdgforeign.h:152
Wrapper for the org_kde_kwin_fake_input interface.
Definition: fakeinput.h:47
Interface
The well-known interfaces this Registry supports.
Definition: registry.h:138
Wrapper for the zxdg_output_manager_v1 interface.
Definition: xdgoutput.h:54
Creates and manages the connection to a Wayland server.
Wrapper for the org_kde_kwin_appmenu_manager interface.
Definition: appmenu.h:48
Wrapper for the zwp_pointer_gestures_v1 interface.
Wrapper for the org_kde_plasma_shell interface.
Definition: plasmashell.h:51
This class is a factory for Dpms instances.
Definition: dpms.h:48
Wrapper for the org_kde_kwin_idle interface.
Definition: idle.h:52
Representation of one announced interface.
Definition: registry.h:249
Wrapper for the zwp_relative_pointer_manager_v1 interface.
Wrapper for the org_kde_kwin_server_decoration_manager interface.
Wrapper for the org_kde_plasma_window_management interface.
quint32 name
The name of the announced interface.
Definition: registry.h:253
Wrapper for the org_kde_kwin_slide_manager interface.
Definition: slide.h:54
Wrapper for the org_kde_kwin_outputmanagement interface.
Wrapper for the wl_subcompositor interface.
Definition: subcompositor.h:34
Wrapper for the org_kde_kwin_outputdevice interface.
Definition: outputdevice.h:57
Wrapper for the wl_data_device_manager interface.
Wrapper for the zwp_idle_inhibit_manager_v1 interface.
Definition: idleinhibit.h:48
Wrapper for the wl_shell interface.
Definition: shell.h:55
Power management for monitors.
Definition: dpms.h:130
Wrapper for the org_kde_kwin_shadow_manager interface.
Definition: shadow.h:55
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Thu Sep 23 2021 22:51:09 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.