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