1 2 /******************************************************************** 3 Copyright 2014 Martin Gräßlin <mgraesslin@kde.org> 4 Copyright 2018 David Edmundson <davidedmundson@kde.org> 5 6 This library is free software; you can redistribute it and/or 7 modify it under the terms of the GNU Lesser General Public 8 License as published by the Free Software Foundation; either 9 version 2.1 of the License, or (at your option) version 3, or any 10 later version accepted by the membership of KDE e.V. (or its 11 successor approved by the membership of KDE e.V.), which shall 12 act as a proxy defined in Section 6 of version 3 of the license. 13 14 This library is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 Lesser General Public License for more details. 18 19 You should have received a copy of the GNU Lesser General Public 20 License along with this library. If not, see <http://www.gnu.org/licenses/>. 21 *********************************************************************/ 22 #ifndef WAYLAND_REGISTRY_H 23 #define WAYLAND_REGISTRY_H 24 25 #include <QHash> 26 #include <QObject> 27 // STD 28 #include <Wrapland/Client/wraplandclient_export.h> 29 #include <memory> 30 31 struct wl_compositor; 32 struct wl_data_device_manager; 33 struct wl_display; 34 struct wl_output; 35 struct wl_registry; 36 struct wl_seat; 37 struct wl_shell; 38 struct wl_shm; 39 struct wl_subcompositor; 40 struct wp_presentation; 41 struct zwp_text_input_manager_v2; 42 struct zwp_text_input_manager_v3; 43 struct _wl_fullscreen_shell; 44 struct org_kde_kwin_appmenu_manager; 45 struct org_kde_kwin_fake_input; 46 struct org_kde_kwin_idle; 47 struct org_kde_kwin_keystate; 48 struct org_kde_kwin_remote_access_manager; 49 struct org_kde_kwin_dpms_manager; 50 struct org_kde_kwin_shadow_manager; 51 struct org_kde_kwin_blur_manager; 52 struct org_kde_kwin_contrast_manager; 53 struct org_kde_kwin_slide_manager; 54 struct org_kde_plasma_shell; 55 struct org_kde_plasma_virtual_desktop_management; 56 struct org_kde_plasma_window_management; 57 struct org_kde_kwin_server_decoration_palette_manager; 58 struct wp_drm_lease_device_v1; 59 struct wp_viewporter; 60 struct xdg_activation_v1; 61 struct xdg_shell; 62 struct xdg_wm_base; 63 struct zwp_input_method_manager_v2; 64 struct zkwinft_output_management_v1; 65 struct zkwinft_output_device_v1; 66 struct zwlr_layer_shell_v1; 67 struct zwlr_output_manager_v1; 68 struct zwp_relative_pointer_manager_v1; 69 struct zwp_pointer_gestures_v1; 70 struct zwp_pointer_constraints_v1; 71 struct zwp_primary_selection_device_manager_v1; 72 struct zxdg_exporter_v2; 73 struct zxdg_importer_v2; 74 struct zwp_idle_inhibit_manager_v1; 75 struct zxdg_output_manager_v1; 76 struct zxdg_decoration_manager_v1; 77 struct zwp_keyboard_shortcuts_inhibit_manager_v1; 78 struct zwp_linux_dmabuf_v1; 79 80 namespace Wrapland 81 { 82 namespace Client 83 { 84 85 class AppMenuManager; 86 class Compositor; 87 class ConnectionThread; 88 class DataDeviceManager; 89 class DpmsManager; 90 class drm_lease_device_v1; 91 class EventQueue; 92 class FakeInput; 93 class FullscreenShell; 94 class OutputManagementV1; 95 class OutputDeviceV1; 96 class WlrOutputManagerV1; 97 class Idle; 98 class IdleInhibitManager; 99 class input_method_manager_v2; 100 class Keystate; 101 class LayerShellV1; 102 class RemoteAccessManager; 103 class Output; 104 class PlasmaShell; 105 class PlasmaVirtualDesktopManagement; 106 class PlasmaWindowManagement; 107 class PointerConstraints; 108 class PointerGestures; 109 class PresentationManager; 110 class PrimarySelectionDeviceManager; 111 class Seat; 112 class ShadowManager; 113 class BlurManager; 114 class ContrastManager; 115 class SlideManager; 116 class Shell; 117 class ShmPool; 118 class ServerSideDecorationPaletteManager; 119 class SubCompositor; 120 class TextInputManagerV2; 121 class text_input_manager_v3; 122 class Viewporter; 123 class XdgShell; 124 class RelativePointerManager; 125 class XdgActivationV1; 126 class XdgExporterUnstableV2; 127 class XdgImporterUnstableV2; 128 class XdgExporter; 129 class XdgImporter; 130 class XdgOutputManager; 131 class XdgDecorationManager; 132 class KeyboardShortcutsInhibitManagerV1; 133 class LinuxDmabufV1; 134 135 /** 136 * @short Wrapper for the wl_registry interface. 137 * 138 * The purpose of this class is to manage the wl_registry interface. 139 * This class supports some well-known interfaces and can create a 140 * wrapper class for those. 141 * 142 * The main purpose is to emit signals whenever a new interface is 143 * added or an existing interface is removed. For the well known interfaces 144 * dedicated signals are emitted allowing a user to connect directly to the 145 * signal announcing the interface it is interested in. 146 * 147 * To create and setup the Registry one needs to call create with either a 148 * wl_display from an existing Wayland connection or a ConnectionThread instance: 149 * 150 * @code 151 * ConnectionThread *connection; // existing connection 152 * Registry registry; 153 * registry.create(connection); 154 * registry.setup(); 155 * @endcode 156 * 157 * The interfaces are announced in an asynchronous way by the Wayland server. 158 * To initiate the announcing of the interfaces one needs to call setup. 159 **/ 160 class WRAPLANDCLIENT_EXPORT Registry : public QObject 161 { 162 Q_OBJECT 163 public: 164 /** 165 * The well-known interfaces this Registry supports. 166 * For each of the enum values the Registry is able to create a Wrapper 167 * object. 168 **/ 169 enum class Interface { 170 Unknown, ///< Refers to an Unknown interface 171 Compositor, ///< Refers to the wl_compositor interface 172 Shell, ///< Refers to the wl_shell interface 173 Seat, ///< Refers to the wl_seat interface 174 Shm, ///< Refers to the wl_shm interface 175 Output, ///< Refers to the wl_output interface 176 FullscreenShell, ///< Refers to the _wl_fullscreen_shell interface 177 LayerShellV1, ///< Refers to zwlr_layer_shell_v1 interface 178 SubCompositor, ///< Refers to the wl_subcompositor interface; 179 DataDeviceManager, ///< Refers to the wl_data_device_manager interface 180 PlasmaShell, ///< Refers to org_kde_plasma_shell interface 181 PlasmaWindowManagement, ///< Refers to org_kde_plasma_window_management interface 182 Idle, ///< Refers to org_kde_kwin_idle_interface interface 183 InputMethodManagerV2, ///< Refers to zwp_input_method_manager_v2, @since 0.523.0 184 FakeInput, ///< Refers to org_kde_kwin_fake_input interface 185 Shadow, ///< Refers to org_kde_kwin_shadow_manager interface 186 Blur, ///< refers to org_kde_kwin_blur_manager interface 187 Contrast, ///< refers to org_kde_kwin_contrast_manager interface 188 Slide, ///< refers to org_kde_kwin_slide_manager 189 Dpms, ///< Refers to org_kde_kwin_dpms_manager interface 190 OutputManagementV1, ///< Refers to the zkwinft_output_management_v1 interface 191 OutputDeviceV1, ///< Refers to the zkwinft_output_device_v1 interface 192 WlrOutputManagerV1, ///< Refers to the zwlr_output_manager_v1 interface 193 TextInputManagerV2, ///< Refers to zwp_text_input_manager_v2, @since 0.0.523 194 TextInputManagerV3, ///< Refers to zwp_text_input_manager_v3, @since 0.523.0 195 RelativePointerManagerUnstableV1, ///< Refers to zwp_relative_pointer_manager_v1, @since 196 ///< 0.0.528 197 PointerGesturesUnstableV1, ///< Refers to zwp_pointer_gestures_v1, @since 0.0.529 198 PointerConstraintsUnstableV1, ///< Refers to zwp_pointer_constraints_v1, @since 0.0.529 199 PresentationManager, ///< Refers to wp_presentation, @since 0.519.0 200 XdgActivationV1, ///< refers to xdg_activation_v1, @since 0.523.0 201 XdgExporterUnstableV2, ///< refers to zxdg_exporter_v2, @since 0.0.540 202 XdgImporterUnstableV2, ///< refers to zxdg_importer_v2, @since 0.0.540 203 IdleInhibitManagerUnstableV1, ///< Refers to zwp_idle_inhibit_manager_v1 (unstable version 204 ///< 1), @since 0.0.541 205 AppMenu, /// Refers to org_kde_kwin_appmenu @since 0.0.542 206 ServerSideDecorationPalette, /// Refers to org_kde_kwin_server_decoration_palette_manager 207 /// @since 0.0.542 208 RemoteAccessManager, ///< Refers to org_kde_kwin_remote_access_manager interface, @since 209 ///< 0.0.545 210 PlasmaVirtualDesktopManagement, ///< Refers to org_kde_plasma_virtual_desktop_management 211 ///< interface @since 0.0.552 212 XdgOutputUnstableV1, /// refers to zxdg_output_v1, @since 0.0.547 213 XdgShell, /// refers to xdg_wm_base @since 0.0.548 214 XdgDecorationUnstableV1, /// refers to zxdg_decoration_manager_v1, @since 0.0.554 215 Keystate, ///< refers to org_kwin_keystate, @since 0.0.557 216 Viewporter, ///< Refers to wp_viewporter, @since 0.518.0 217 KeyboardShortcutsInhibitManagerV1, 218 LinuxDmabufV1, 219 PrimarySelectionDeviceManager, 220 DrmLeaseDeviceV1, ///< Refers to wp_drm_lease_device_v1, @since 0.523.0 221 }; 222 explicit Registry(QObject* parent = nullptr); 223 virtual ~Registry(); 224 225 /** 226 * Releases the wl_registry interface. 227 * After the interface has been released the Registry instance is no 228 * longer valid and can be setup with another wl_registry interface. 229 **/ 230 void release(); 231 232 /** 233 * Gets the registry from the @p display. 234 **/ 235 void create(wl_display* display); 236 /** 237 * Gets the registry from the @p connection. 238 **/ 239 void create(ConnectionThread* connection); 240 /** 241 * Finalizes the setup of the Registry. 242 * After calling this method the interfaces will be announced in an asynchronous way. 243 * The Registry must have been created when calling this method. 244 * @see create 245 **/ 246 void setup(); 247 248 /** 249 * Sets the @p queue to use for this Registry. 250 * 251 * The EventQueue should be set before the Registry gets setup. 252 * The EventQueue gets automatically added to all interfaces created by 253 * this Registry. So that all objects are in the same EventQueue. 254 * 255 * @param queue The event queue to use for this Registry. 256 **/ 257 void setEventQueue(EventQueue* queue); 258 /** 259 * @returns The EventQueue used by this Registry 260 **/ 261 EventQueue* eventQueue(); 262 263 /** 264 * @returns @c true if managing a wl_registry. 265 **/ 266 bool isValid() const; 267 /** 268 * @returns @c true if the Registry has an @p interface. 269 **/ 270 bool hasInterface(Interface interface) const; 271 272 /** 273 * Representation of one announced interface. 274 **/ 275 struct AnnouncedInterface { 276 /** 277 * The name of the announced interface. 278 **/ 279 quint32 name; 280 /** 281 * The maximum supported version of the announced interface. 282 **/ 283 quint32 version; 284 }; 285 /** 286 * Provides name and version for the @p interface. 287 * 288 * The first value of the returned pair is the "name", the second value is the "version". 289 * If the @p interface has not been announced, both values are set to 0. 290 * If there @p interface has been announced multiple times, the last announced is returned. 291 * In case one is interested in all announced interfaces, one should prefer @link 292 * interfaces(Interface) @endlink. 293 * 294 * The returned information can be passed into the bind or create methods. 295 * 296 * @param interface The well-known interface for which the name and version should be retrieved 297 * @returns name and version of the given interface 298 * @since 5.5 299 **/ 300 AnnouncedInterface interface(Interface interface) const; 301 /** 302 * Provides all pairs of name and version for the well-known @p interface. 303 * 304 * If the @p interface has not been announced, an empty vector is returned. 305 * 306 * The returned information can be passed into the bind or create methods. 307 * 308 * @param interface The well-known interface for which the name and version should be retrieved 309 * @returns All pairs of name and version of the given interface 310 * @since 5.5 311 **/ 312 QVector<AnnouncedInterface> interfaces(Interface interface) const; 313 314 /** 315 * @name Low-level bind methods for global interfaces. 316 **/ 317 ///@{ 318 /** 319 * Binds the wl_compositor with @p name and @p version. 320 * If the @p name does not exist or is not for the compositor interface, 321 * @c null will be returned. 322 * 323 * Prefer using createCompositor instead. 324 * @see createCompositor 325 **/ 326 wl_compositor* bindCompositor(uint32_t name, uint32_t version) const; 327 /** 328 * Binds the wl_shell with @p name and @p version. 329 * If the @p name does not exist or is not for the shell interface, 330 * @c null will be returned. 331 * 332 * Prefer using createShell instead. 333 * @see createShell 334 **/ 335 wl_shell* bindShell(uint32_t name, uint32_t version) const; 336 /** 337 * Binds the wl_seat with @p name and @p version. 338 * If the @p name does not exist or is not for the seat interface, 339 * @c null will be returned. 340 * 341 * Prefer using createSeat instead. 342 * @see createSeat 343 **/ 344 wl_seat* bindSeat(uint32_t name, uint32_t version) const; 345 /** 346 * Binds the wl_shm with @p name and @p version. 347 * If the @p name does not exist or is not for the shm interface, 348 * @c null will be returned. 349 * 350 * Prefer using createShmPool instead. 351 * @see createShmPool 352 **/ 353 wl_shm* bindShm(uint32_t name, uint32_t version) const; 354 /** 355 * Binds the zkwinft_output_management_v1 with @p name and @p version. 356 * If the @p name does not exist or is not for the output management interface, 357 * @c null will be returned. 358 * 359 * Prefer using createOutputManagementV1 instead. 360 * @see createOutputManagementV1 361 **/ 362 zkwinft_output_management_v1* bindOutputManagementV1(uint32_t name, uint32_t version) const; 363 /** 364 * Binds the zwlr_output_manager_v1 with @p name and @p version. 365 * If the @p name does not exist or is not for the output manager interface, 366 * @c null will be returned. 367 * 368 * Prefer using createWlrOutputManagerV1 instead. 369 * @see createWlrOutputManagerV1 370 */ 371 zwlr_output_manager_v1* bindWlrOutputManagerV1(uint32_t name, uint32_t version) const; 372 /** 373 * Binds the org_kde_kwin_outputdevice with @p name and @p version. 374 * If the @p name does not exist or is not for the outputdevice interface, 375 * @c null will be returned. 376 * 377 * Prefer using createOutput instead. 378 * @see createOutput 379 **/ 380 wl_output* bindOutput(uint32_t name, uint32_t version) const; 381 /** 382 * Binds the wl_subcompositor with @p name and @p version. 383 * If the @p name does not exist or is not for the subcompositor interface, 384 * @c null will be returned. 385 * 386 * Prefer using createSubCompositor instead. 387 * @see createSubCompositor 388 **/ 389 wl_subcompositor* bindSubCompositor(uint32_t name, uint32_t version) const; 390 /** 391 * Binds the zkwinft_output_device_v1 with @p name and @p version. 392 * If the @p name does not exist or is not for the output interface, 393 * @c null will be returned. 394 * 395 * Prefer using createOutputDeviceV1 instead. 396 * @see createOutputDeviceV1 397 **/ 398 zkwinft_output_device_v1* bindOutputDeviceV1(uint32_t name, uint32_t version) const; 399 400 /** 401 * Binds the _wl_fullscreen_shell with @p name and @p version. 402 * If the @p name does not exist or is not for the fullscreen shell interface, 403 * @c null will be returned. 404 * 405 * Prefer using createFullscreenShell instead. 406 * @see createFullscreenShell 407 **/ 408 _wl_fullscreen_shell* bindFullscreenShell(uint32_t name, uint32_t version) const; 409 /** 410 * Binds the wl_data_device_manager with @p name and @p version. 411 * If the @p name does not exist or is not for the data device manager interface, 412 * @c null will be returned. 413 * 414 * Prefer using createDataDeviceManager instead. 415 * @see createDataDeviceManager 416 **/ 417 wl_data_device_manager* bindDataDeviceManager(uint32_t name, uint32_t version) const; 418 /** 419 * Binds the wp_drm_lease_device_v1 with @p name and @p version. 420 * If the @p name does not exists or is not for the device extension in version 1, 421 * @c null will be returned. 422 * 423 * Prefer using createDrmLeaseDeviceV1 424 * @since 0.0.540 425 */ 426 wp_drm_lease_device_v1* bindDrmLeaseDeviceV1(uint32_t name, uint32_t version) const; 427 /** 428 * Binds the zwp_input_method_manager_v2 with @p name and @p version. 429 * If the @p name does not exist or is not for the input method interface in unstable version 2, 430 * @c null will be returned. 431 * 432 * Prefer using createInputMethodManagerV2 instead. 433 * @see createInputMethodManagerV2 434 * @since 0.523.0 435 **/ 436 zwp_input_method_manager_v2* bindInputMethodManagerV2(uint32_t name, uint32_t version) const; 437 /** 438 * Binds the org_kde_plasma_shell with @p name and @p version. 439 * If the @p name does not exist or is not for the Plasma shell interface, 440 * @c null will be returned. 441 * 442 * Prefer using createPlasmaShell instead. 443 * @see createPlasmaShell 444 * @since 5.4 445 **/ 446 org_kde_plasma_shell* bindPlasmaShell(uint32_t name, uint32_t version) const; 447 /** 448 * Binds the org_kde_plasma_virtual_desktop_management with @p name and @p version. 449 * If the @p name does not exist or is not for the Plasma Virtual desktop interface, 450 * @c null will be returned. 451 * 452 * Prefer using createPlasmaShell instead. 453 * @see createPlasmaShell 454 * @since 0.0.552 455 **/ 456 org_kde_plasma_virtual_desktop_management* 457 bindPlasmaVirtualDesktopManagement(uint32_t name, uint32_t version) const; 458 /** 459 * Binds the org_kde_plasma_window_management with @p name and @p version. 460 * If the @p name does not exist or is not for the Plasma window management interface, 461 * @c null will be returned. 462 * 463 * Prefer using createPlasmaWindowManagement instead. 464 * @see createPlasmaWindowManagement 465 * @since 0.0.546 466 **/ 467 org_kde_plasma_window_management* bindPlasmaWindowManagement(uint32_t name, 468 uint32_t version) const; 469 /** 470 * Binds the org_kde_kwin_idle with @p name and @p version. 471 * If the @p name does not exist or is not for the idle interface, 472 * @c null will be returned. 473 * 474 * Prefer using createIdle instead. 475 * @see createIdle 476 * @since 5.4 477 **/ 478 org_kde_kwin_idle* bindIdle(uint32_t name, uint32_t version) const; 479 /** 480 * Binds the org_kde_kwin_keystate with @p name and @p version. 481 * If the @p name does not exist or is not for the keystate interface, 482 * @c null will be returned. 483 * 484 * Prefer using createIdle instead. 485 * @see createIdle 486 * @since 5.4 487 **/ 488 org_kde_kwin_keystate* bindKeystate(uint32_t name, uint32_t version) const; 489 /** 490 * Binds the org_kde_kwin_remote_access_manager with @p name and @p version. 491 * If the @p name does not exist or is not for the idle interface, 492 * @c null will be returned. 493 * 494 * Prefer using createRemoteAccessManager instead. 495 * @see createRemoteAccessManager 496 * @since 0.0.545 497 **/ 498 org_kde_kwin_remote_access_manager* bindRemoteAccessManager(uint32_t name, 499 uint32_t version) const; 500 /** 501 * Binds the org_kde_kwin_fake_input with @p name and @p version. 502 * If the @p name does not exist or is not for the fake input interface, 503 * @c null will be returned. 504 * 505 * Prefer using createFakeInput instead. 506 * @see createFakeInput 507 * @since 5.4 508 **/ 509 org_kde_kwin_fake_input* bindFakeInput(uint32_t name, uint32_t version) const; 510 /** 511 * Binds the org_kde_kwin_shadow_manager with @p name and @p version. 512 * If the @p name does not exist or is not for the shadow manager interface, 513 * @c null will be returned. 514 * 515 * Prefer using createShadowManager instead. 516 * @see createShadowManager 517 * @since 5.4 518 **/ 519 org_kde_kwin_shadow_manager* bindShadowManager(uint32_t name, uint32_t version) const; 520 /** 521 * Binds the org_kde_kwin_blur_manager with @p name and @p version. 522 * If the @p name does not exist or is not for the blur manager interface, 523 * @c null will be returned. 524 * 525 * Prefer using createBlurManager instead. 526 * @see createBlurManager 527 * @since 5.5 528 **/ 529 org_kde_kwin_blur_manager* bindBlurManager(uint32_t name, uint32_t version) const; 530 /** 531 * Binds the org_kde_kwin_contrast_manager with @p name and @p version. 532 * If the @p name does not exist or is not for the contrast manager interface, 533 * @c null will be returned. 534 * 535 * Prefer using createContrastManager instead. 536 * @see createContrastManager 537 * @since 5.5 538 **/ 539 org_kde_kwin_contrast_manager* bindContrastManager(uint32_t name, uint32_t version) const; 540 /** 541 * Binds the zwlr_layer_shell_v1 with @p name and @p version. 542 * If the @p name does not exist or is not for the layer shell interface, 543 * @c null will be returned. 544 * 545 * Prefer using createLayerShellV1 instead. 546 * @see createLayerShellV1 547 * @since 0.522.0 548 **/ 549 zwlr_layer_shell_v1* bindLayerShellV1(uint32_t name, uint32_t version) const; 550 /** 551 * Binds the org_kde_kwin_slide_manager with @p name and @p version. 552 * If the @p name does not exist or is not for the slide manager interface, 553 * @c null will be returned. 554 * 555 * Prefer using createSlideManager instead. 556 * @see createSlideManager 557 * @since 5.5 558 **/ 559 org_kde_kwin_slide_manager* bindSlideManager(uint32_t name, uint32_t version) const; 560 /** 561 * Binds the org_kde_kwin_dpms_manager with @p name and @p version. 562 * If the @p name does not exist or is not for the dpms manager interface, 563 * @c null will be returned. 564 * 565 * Prefer using createDpmsManager instead. 566 * @see createDpmsManager 567 * @since 5.5 568 **/ 569 org_kde_kwin_dpms_manager* bindDpmsManager(uint32_t name, uint32_t version) const; 570 /** 571 * Binds the zwp_text_input_manager_v2 with @p name and @p version. 572 * If the @p name does not exist or is not for the text input interface in unstable version 2, 573 * @c null will be returned. 574 * 575 * Prefer using createTextInputManagerV2 instead. 576 * @see createTextInputManagerV2 577 * @since 0.0.523 578 **/ 579 zwp_text_input_manager_v2* bindTextInputManagerV2(uint32_t name, uint32_t version) const; 580 /** 581 * Binds the zwp_text_input_manager_v3 with @p name and @p version. 582 * If the @p name does not exist or is not for the text input interface in unstable version 3, 583 * @c null will be returned. 584 * 585 * Prefer using createTextInputManagerV3 instead. 586 * @see createTextInputManagerV3 587 * @since 0.523.0 588 **/ 589 zwp_text_input_manager_v3* bindTextInputManagerV3(uint32_t name, uint32_t version) const; 590 /** 591 * Binds the wp_viewporter with @p name and @p version. 592 * If the @p name does not exist or is not for the viewporter interface, 593 * @c null will be returned. 594 * 595 * Prefer using createViewporter instead. 596 * @see createViewporter 597 * @since 0.518.0 598 **/ 599 wp_viewporter* bindViewporter(uint32_t name, uint32_t version) const; 600 /** 601 * Binds the xdg_wm_base with @p name and @p version. 602 * If the @p name does not exist or is not for the xdg shell interface in unstable version 5, 603 * @c null will be returned. 604 * 605 * Prefer using createXdgShell instead. 606 * @see createXdgShell 607 * @since 0.0.539 608 **/ 609 xdg_wm_base* bindXdgShell(uint32_t name, uint32_t version) const; 610 /** 611 * Binds the zwp_relative_pointer_manager_v1 with @p name and @p version. 612 * If the @p name does not exist or is not for the relative pointer interface in unstable 613 * version 1, 614 * @c null will be returned. 615 * 616 * Prefer using createRelativePointerManager instead. 617 * @see createRelativePointerManager 618 * @since 0.0.520 619 **/ 620 zwp_relative_pointer_manager_v1* bindRelativePointerManagerUnstableV1(uint32_t name, 621 uint32_t version) const; 622 /** 623 * Binds the zwp_pointer_gestures_v1 with @p name and @p version. 624 * If the @p name does not exist or is not for the pointer gestures interface in unstable 625 * version 1, 626 * @c null will be returned. 627 * 628 * Prefer using createPointerGestures instead. 629 * @see createPointerGestures 630 * @since 0.0.529 631 **/ 632 zwp_pointer_gestures_v1* bindPointerGesturesUnstableV1(uint32_t name, uint32_t version) const; 633 /** 634 * Binds the zwp_pointer_constraints_v1 with @p name and @p version. 635 * If the @p name does not exist or is not for the pointer constraints interface in unstable 636 * version 1, 637 * @c null will be returned. 638 * 639 * Prefer using createPointerConstraints instead. 640 * @see createPointerConstraints 641 * @since 0.0.529 642 **/ 643 zwp_pointer_constraints_v1* bindPointerConstraintsUnstableV1(uint32_t name, 644 uint32_t version) const; 645 646 /** 647 * Binds the wp_presentation with @p name and @p version. 648 * If the @p name does not exist or is not for the presentation interface, 649 * @c null will be returned. 650 * 651 * Prefer using createPresentationManager instead. 652 * @see createPresentationManager 653 * @since 0.520.0 654 **/ 655 wp_presentation* bindPresentationManager(uint32_t name, uint32_t version) const; 656 /** 657 * Binds the xdg_activation_v1 with @p name and @p version. 658 * If the @p name does not exist or is not for the activation interface, 659 * @c null will be returned. 660 * 661 * Prefer using createXdgActivationV1 instead. 662 * @see createXdgActivationV1 663 * @since 0.523.0 664 **/ 665 xdg_activation_v1* bindXdgActivationV1(uint32_t name, uint32_t version) const; 666 667 /** 668 * Binds the zwp_primary_selection_device_manager_v1 with @p name and @p version. 669 * If the @p name does not exist or is not for the primary selection manager interface, 670 * @c null will be returned. 671 * 672 * Prefer using createPrimarySelectionDeviceManager instead. 673 * @see createPrimarySelectionDeviceManager 674 **/ 675 zwp_primary_selection_device_manager_v1* 676 bindPrimarySelectionDeviceManager(uint32_t name, uint32_t version) const; 677 678 /** 679 * Binds the zxdg_exporter_v2 with @p name and @p version. 680 * If the @p name does not exists or isnot for the exporter 681 * extension in unstable version 1, 682 * @c null will be returned. 683 * 684 * Prefer using createXdgExporter 685 * @since 0.0.540 686 */ 687 zxdg_exporter_v2* bindXdgExporterUnstableV2(uint32_t name, uint32_t version) const; 688 689 /** 690 * Binds the zxdg_importer_v2 with @p name and @p version. 691 * If the @p name does not exists or isnot for the importer 692 * extension in unstable version 1, 693 * @c null will be returned. 694 * 695 * Prefer using createXdgImporter 696 * @since 0.0.540 697 */ 698 zxdg_importer_v2* bindXdgImporterUnstableV2(uint32_t name, uint32_t version) const; 699 700 /** 701 * Binds the zwp_idle_inhibit_manager_v1 with @p name and @p version. 702 * If the @p name does not exists or is not for the idle inhibit manager in unstable version 1, 703 * @c null will be returned. 704 * 705 * Prefer using createIdleInhibitManager 706 * @since 0.0.541 707 */ 708 zwp_idle_inhibit_manager_v1* bindIdleInhibitManagerUnstableV1(uint32_t name, 709 uint32_t version) const; 710 711 /** 712 * Binds the org_kde_kwin_appmenu_manager with @p name and @p version. 713 * If the @p name does not exist or is not for the appmenu manager interface, 714 * @c null will be returned. 715 * 716 * Prefer using createAppMenuManager instead. 717 * @see createAppMenuManager 718 * @since 0.0.542 719 **/ 720 org_kde_kwin_appmenu_manager* bindAppMenuManager(uint32_t name, uint32_t version) const; 721 722 /** 723 * Binds the org_kde_kwin_server_decoration_palette_manager with @p name and @p version. 724 * If the @p name does not exist or is not for the server side decoration palette manager 725 * interface, 726 * @c null will be returned. 727 * 728 * Prefer using createServerSideDecorationPaletteManager instead. 729 * @see createServerSideDecorationPaletteManager 730 * @since 0.0.542 731 **/ 732 org_kde_kwin_server_decoration_palette_manager* 733 bindServerSideDecorationPaletteManager(uint32_t name, uint32_t version) const; 734 735 /** 736 * Binds the zxdg_output_v1 with @p name and @p version. 737 * If the @p name does not exist, 738 * @c null will be returned. 739 * 740 * Prefer using createXdgOutputManager instead. 741 * @see createXdgOutputManager 742 * @since 0.0.547 743 **/ 744 zxdg_output_manager_v1* bindXdgOutputUnstableV1(uint32_t name, uint32_t version) const; 745 746 /** 747 * Binds the zxdg_decoration_manager_v1 with @p name and @p version. 748 * If the @p name does not exist, 749 * @c null will be returned. 750 * 751 * Prefer using createXdgDecorationManager instead. 752 * @see createXdgDecorationManager 753 * @since 0.0.554 754 **/ 755 zxdg_decoration_manager_v1* bindXdgDecorationUnstableV1(uint32_t name, uint32_t version) const; 756 757 /** 758 * Binds the zwp_keyboard_shortcuts_inhibit_manager_v1 with @p name and @p version. 759 * If the @p name does not exist, 760 * @c null will be returned. 761 * 762 * Prefer using createXdgDecorationManager instead. 763 * @see createXdgDecorationManager 764 * @since 0.0.554 765 **/ 766 zwp_keyboard_shortcuts_inhibit_manager_v1* 767 bindKeyboardShortcutsInhibitManagerV1(uint32_t name, uint32_t version) const; 768 769 /** Binds the zwp_linux_dmabuf_v1 with @p name and @p version. 770 * If the @p name does not exist, 771 * @c null will be returned. 772 * 773 * Prefer using createLinuxDmabufV1 instead. 774 * @see createLinuxDmabufV1 775 * @since 0.520.0 776 **/ 777 zwp_linux_dmabuf_v1* bindLinuxDmabufV1(uint32_t name, uint32_t version) const; 778 779 ///@} 780 781 /** 782 * @name Convenient factory methods for global objects. 783 **/ 784 ///@{ 785 /** 786 * Creates a Compositor and sets it up to manage the interface identified by 787 * @p name and @p version. 788 * 789 * Note: in case @p name is invalid or isn't for the wl_compositor interface, 790 * the returned Compositor will not be valid. Therefore it's recommended to call 791 * isValid on the created instance. 792 * 793 * @param name The name of the wl_compositor interface to bind 794 * @param version The version or the wl_compositor interface to use 795 * @param parent The parent for Compositor 796 * 797 * @returns The created Compositor. 798 **/ 799 Compositor* createCompositor(quint32 name, quint32 version, QObject* parent = nullptr); 800 /** 801 * Creates a Seat and sets it up to manage the interface identified by 802 * @p name and @p version. 803 * 804 * Note: in case @p name is invalid or isn't for the wl_seat interface, 805 * the returned Seat will not be valid. Therefore it's recommended to call 806 * isValid on the created instance. 807 * 808 * @param name The name of the wl_seat interface to bind 809 * @param version The version or the wl_seat interface to use 810 * @param parent The parent for Seat 811 * 812 * @returns The created Seat. 813 **/ 814 Shell* createShell(quint32 name, quint32 version, QObject* parent = nullptr); 815 /** 816 * Creates a Compositor and sets it up to manage the interface identified by 817 * @p name and @p version. 818 * 819 * Note: in case @p name is invalid or isn't for the wl_compositor interface, 820 * the returned Compositor will not be valid. Therefore it's recommended to call 821 * isValid on the created instance. 822 * 823 * @param name The name of the wl_compositor interface to bind 824 * @param version The version or the wl_compositor interface to use 825 * @param parent The parent for Compositor 826 * 827 * @returns The created Compositor. 828 **/ 829 Seat* createSeat(quint32 name, quint32 version, QObject* parent = nullptr); 830 /** 831 * Creates a ShmPool and sets it up to manage the interface identified by 832 * @p name and @p version. 833 * 834 * Note: in case @p name is invalid or isn't for the wl_shm interface, 835 * the returned ShmPool will not be valid. Therefore it's recommended to call 836 * isValid on the created instance. 837 * 838 * @param name The name of the wl_shm interface to bind 839 * @param version The version or the wl_shm interface to use 840 * @param parent The parent for ShmPool 841 * 842 * @returns The created ShmPool. 843 **/ 844 ShmPool* createShmPool(quint32 name, quint32 version, QObject* parent = nullptr); 845 /** 846 * Creates a SubCompositor and sets it up to manage the interface identified by 847 * @p name and @p version. 848 * 849 * Note: in case @p name is invalid or isn't for the wl_subcompositor interface, 850 * the returned SubCompositor will not be valid. Therefore it's recommended to call 851 * isValid on the created instance. 852 * 853 * @param name The name of the wl_subcompositor interface to bind 854 * @param version The version or the wl_subcompositor interface to use 855 * @param parent The parent for SubCompositor 856 * 857 * @returns The created SubCompositor. 858 **/ 859 SubCompositor* createSubCompositor(quint32 name, quint32 version, QObject* parent = nullptr); 860 /** 861 * Creates an Output and sets it up to manage the interface identified by 862 * @p name and @p version. 863 * 864 * Note: in case @p name is invalid or isn't for the wl_output interface, 865 * the returned Output will not be valid. Therefore it's recommended to call 866 * isValid on the created instance. 867 * 868 * @param name The name of the wl_output interface to bind 869 * @param version The version or the wl_output interface to use 870 * @param parent The parent for Output 871 * 872 * @returns The created Output. 873 **/ 874 Output* createOutput(quint32 name, quint32 version, QObject* parent = nullptr); 875 /** 876 * Creates an OutputManagementV1 and sets it up to manage the interface identified 877 * by @p name and @p version. 878 * 879 * Note: in case @p name is invalid or isn't for the zkwinft_output_management_v1 interface, 880 * the returned OutputManagementV1 will not be valid. Therefore it's recommended to call 881 * isValid on the created instance. 882 * 883 * @param name The name of the zkwinft_output_management_v1 interface to bind 884 * @param version The version or the zkwinft_output_management_v1 interface to use 885 * @param parent The parent for OutputManagementV1 886 * 887 * @returns The created OutputManagementV1. 888 **/ 889 OutputManagementV1* 890 createOutputManagementV1(quint32 name, quint32 version, QObject* parent = nullptr); 891 /** 892 * Creates an OutputDeviceV1 and sets it up to manage the interface identified by 893 * @p name and @p version. 894 * 895 * Note: in case @p name is invalid or isn't for the zkwinft_output_device_v1 interface, 896 * the returned OutputDeviceV1 will not be valid. Therefore it's recommended to call 897 * isValid on the created instance. 898 * 899 * @param name The name of the zkwinft_output_device_v1 interface to bind 900 * @param version The version or the zkwinft_output_device_v1 interface to use 901 * @param parent The parent for OutputDeviceV1 902 * 903 * @returns The created OutputDeviceV1. 904 **/ 905 OutputDeviceV1* createOutputDeviceV1(quint32 name, quint32 version, QObject* parent = nullptr); 906 /** 907 * Creates an OutputManagementV1 and sets it up to manage the interface identified 908 * by @p name and @p version. 909 * 910 * Note: in case @p name is invalid or isn't for the zkwinft_output_management_v1 interface, 911 * the returned OutputManagementV1 will not be valid. Therefore it's recommended to call 912 * isValid on the created instance. 913 * 914 * @param name The name of the zkwinft_output_management_v1 interface to bind 915 * @param version The version or the zkwinft_output_management_v1 interface to use 916 * @param parent The parent for OutputManagementV1 917 * 918 * @returns The created OutputManagementV1. 919 */ 920 WlrOutputManagerV1* 921 createWlrOutputManagerV1(quint32 name, quint32 version, QObject* parent = nullptr); 922 /** 923 * Creates a FullscreenShell and sets it up to manage the interface identified by 924 * @p name and @p version. 925 * 926 * Note: in case @p name is invalid or isn't for the _wl_fullscreen_shell interface, 927 * the returned FullscreenShell will not be valid. Therefore it's recommended to call 928 * isValid on the created instance. 929 * 930 * @param name The name of the _wl_fullscreen_shell interface to bind 931 * @param version The version or the _wl_fullscreen_shell interface to use 932 * @param parent The parent for FullscreenShell 933 * 934 * @returns The created FullscreenShell. 935 * @since 5.5 936 **/ 937 FullscreenShell* 938 createFullscreenShell(quint32 name, quint32 version, QObject* parent = nullptr); 939 /** 940 * Creates a DataDeviceManager and sets it up to manage the interface identified by 941 * @p name and @p version. 942 * 943 * Note: in case @p name is invalid or isn't for the wl_data_device_manager interface, 944 * the returned DataDeviceManager will not be valid. Therefore it's recommended to call 945 * isValid on the created instance. 946 * 947 * @param name The name of the wl_data_device_manager interface to bind 948 * @param version The version or the wl_data_device_manager interface to use 949 * @param parent The parent for DataDeviceManager 950 * 951 * @returns The created DataDeviceManager. 952 **/ 953 DataDeviceManager* 954 createDataDeviceManager(quint32 name, quint32 version, QObject* parent = nullptr); 955 /** 956 * Creates a drm_lease_device_v1 and sets it up to manage the interface identified by 957 * @p name and @p version. 958 * 959 * This factory method supports the following interfaces: 960 * @li wp_drm_lease_device_v1 961 * 962 * If @p name is for one of the supported interfaces the corresponding manager will be created, 963 * otherwise @c null will be returned. 964 * 965 * @param name The name of the interface to bind 966 * @param version The version of the interface to use 967 * @param parent The parent for the drm_lease_device_v1 968 * 969 * @returns The created drm_lease_device_v1 970 * @since 0.0.523 971 **/ 972 drm_lease_device_v1* 973 createDrmLeaseDeviceV1(quint32 name, quint32 version, QObject* parent = nullptr); 974 /** 975 * Creates a PlasmaShell and sets it up to manage the interface identified by 976 * @p name and @p version. 977 * 978 * Note: in case @p name is invalid or isn't for the org_kde_plasma_shell interface, 979 * the returned PlasmaShell will not be valid. Therefore it's recommended to call 980 * isValid on the created instance. 981 * 982 * @param name The name of the org_kde_plasma_shell interface to bind 983 * @param version The version or the org_kde_plasma_shell interface to use 984 * @param parent The parent for PlasmaShell 985 * 986 * @returns The created PlasmaShell. 987 * @since 5.4 988 **/ 989 PlasmaShell* createPlasmaShell(quint32 name, quint32 version, QObject* parent = nullptr); 990 /** 991 * Creates a PlasmaVirtualDesktopManagement and sets it up to manage the interface identified by 992 * @p name and @p version. 993 * 994 * Note: in case @p name is invalid or isn't for the org_kde_plasma_virtual_desktop_management 995 * interface, the returned VirtualDesktop will not be valid. Therefore it's recommended to call 996 * isValid on the created instance. 997 * 998 * @param name The name of the org_kde_plasma_virtual_desktop_management interface to bind 999 * @param version The version or the org_kde_plasma_virtual_desktop_management interface to use 1000 * @param parent The parent for PlasmaShell 1001 * 1002 * @returns The created PlasmaShell. 1003 * @since 0.0.552 1004 **/ 1005 PlasmaVirtualDesktopManagement* 1006 createPlasmaVirtualDesktopManagement(quint32 name, quint32 version, QObject* parent = nullptr); 1007 /** 1008 * Creates a PlasmaWindowManagement and sets it up to manage the interface identified by 1009 * @p name and @p version. 1010 * 1011 * Note: in case @p name is invalid or isn't for the org_kde_plasma_window_management interface, 1012 * the returned PlasmaWindowManagement will not be valid. Therefore it's recommended to call 1013 * isValid on the created instance. 1014 * 1015 * @param name The name of the org_kde_plasma_window_management interface to bind 1016 * @param version The version or the org_kde_plasma_window_management interface to use 1017 * @param parent The parent for PlasmaWindowManagement 1018 * 1019 * @returns The created PlasmaWindowManagement. 1020 * @since 5.4 1021 **/ 1022 PlasmaWindowManagement* 1023 createPlasmaWindowManagement(quint32 name, quint32 version, QObject* parent = nullptr); 1024 /** 1025 * Creates an Idle and sets it up to manage the interface identified by 1026 * @p name and @p version. 1027 * 1028 * Note: in case @p name is invalid or isn't for the org_kde_kwin_idle interface, 1029 * the returned Idle will not be valid. Therefore it's recommended to call 1030 * isValid on the created instance. 1031 * 1032 * @param name The name of the org_kde_kwin_idle interface to bind 1033 * @param version The version or the org_kde_kwin_idle interface to use 1034 * @param parent The parent for Idle 1035 * 1036 * @returns The created Idle. 1037 * @since 5.4 1038 **/ 1039 Idle* createIdle(quint32 name, quint32 version, QObject* parent = nullptr); 1040 /** 1041 * Creates a input_method_manager_v2 and sets it up to manage the interface identified by 1042 * @p name and @p version. 1043 * 1044 * This factory method supports the following interfaces: 1045 * @li zwp_input_method_manager_v2 1046 * 1047 * If @p name is for one of the supported interfaces the corresponding manager will be created, 1048 * otherwise @c null will be returned. 1049 * 1050 * @param name The name of the interface to bind 1051 * @param version The version of the interface to use 1052 * @param parent The parent for the input_method_manager_v2 1053 * 1054 * @returns The created input_method_manager_v2 1055 * @since 0.523.0 1056 **/ 1057 input_method_manager_v2* 1058 createInputMethodManagerV2(quint32 name, quint32 version, QObject* parent = nullptr); 1059 /** 1060 * Creates a KEystate and sets it up to manage the interface identified by 1061 * @p name and @p version. 1062 * 1063 * Note: in case @p name is invalid or isn't for the org_kde_kwin_keystate interface, 1064 * the returned Idle will not be valid. Therefore it's recommended to call 1065 * isValid on the created instance. 1066 * 1067 * @param name The name of the org_kde_kwin_keystate interface to bind 1068 * @param version The version or the org_kde_kwin_keystate interface to use 1069 * @param parent The parent for Idle 1070 * 1071 * @returns The created Idle. 1072 * @since 5.4 1073 **/ 1074 Keystate* createKeystate(quint32 name, quint32 version, QObject* parent = nullptr); 1075 /** 1076 * Creates a RemoteAccessManager and sets it up to manage the interface identified by 1077 * @p name and @p version. 1078 * 1079 * Note: in case @p name is invalid or isn't for the org_kde_kwin_remote_access_manager 1080 * interface, the returned RemoteAccessManager will not be valid. Therefore it's recommended to 1081 * call isValid on the created instance. 1082 * 1083 * @param name The name of the org_kde_kwin_remote_access_manager interface to bind 1084 * @param version The version or the org_kde_kwin_remote_access_manager interface to use 1085 * @param parent The parent for RemoteAccessManager 1086 * 1087 * @returns The created RemoteAccessManager. 1088 * @since 0.0.545 1089 **/ 1090 RemoteAccessManager* 1091 createRemoteAccessManager(quint32 name, quint32 version, QObject* parent = nullptr); 1092 /** 1093 * Creates a FakeInput and sets it up to manage the interface identified by 1094 * @p name and @p version. 1095 * 1096 * Note: in case @p name is invalid or isn't for the org_kde_kwin_fake_input interface, 1097 * the returned FakeInput will not be valid. Therefore it's recommended to call 1098 * isValid on the created instance. 1099 * 1100 * @param name The name of the org_kde_kwin_fake_input interface to bind 1101 * @param version The version or the org_kde_kwin_fake_input interface to use 1102 * @param parent The parent for FakeInput 1103 * 1104 * @returns The created FakeInput. 1105 * @since 5.4 1106 **/ 1107 FakeInput* createFakeInput(quint32 name, quint32 version, QObject* parent = nullptr); 1108 /** 1109 * Creates a ShadowManager and sets it up to manage the interface identified by 1110 * @p name and @p version. 1111 * 1112 * Note: in case @p name is invalid or isn't for the org_kde_kwin_shadow_manager interface, 1113 * the returned ShadowManager will not be valid. Therefore it's recommended to call 1114 * isValid on the created instance. 1115 * 1116 * @param name The name of the org_kde_kwin_shadow_manager interface to bind 1117 * @param version The version or the org_kde_kwin_shadow_manager interface to use 1118 * @param parent The parent for ShadowManager 1119 * 1120 * @returns The created ShadowManager. 1121 * @since 5.4 1122 **/ 1123 ShadowManager* createShadowManager(quint32 name, quint32 version, QObject* parent = nullptr); 1124 /** 1125 * Creates a LayerShellV1 and sets it up to manage the interface identified by 1126 * @p name and @p version. 1127 * 1128 * Note: in case @p name is invalid or isn't for the zwlr_layer_shell_v1 interface, 1129 * the returned LayerShellV1 will not be valid. Therefore it's recommended to call 1130 * isValid on the created instance. 1131 * 1132 * @param name The name of the zwlr_layer_shell_v1 interface to bind 1133 * @param version The version or the zwlr_layer_shell_v1 interface to use 1134 * @param parent The parent for LayerShellV1 1135 * 1136 * @returns The created LayerShellV1. 1137 * @since 0.522.0 1138 **/ 1139 LayerShellV1* createLayerShellV1(quint32 name, quint32 version, QObject* parent = nullptr); 1140 /** 1141 * Creates a BlurManager and sets it up to manage the interface identified by 1142 * @p name and @p version. 1143 * 1144 * Note: in case @p name is invalid or isn't for the org_kde_kwin_blur_manager interface, 1145 * the returned BlurManager will not be valid. Therefore it's recommended to call 1146 * isValid on the created instance. 1147 * 1148 * @param name The name of the org_kde_kwin_blur_manager interface to bind 1149 * @param version The version or the org_kde_kwin_blur_manager interface to use 1150 * @param parent The parent for BlurManager 1151 * 1152 * @returns The created BlurManager. 1153 * @since 5.5 1154 **/ 1155 BlurManager* createBlurManager(quint32 name, quint32 version, QObject* parent = nullptr); 1156 /** 1157 * Creates a ContrastManager and sets it up to manage the interface identified by 1158 * @p name and @p version. 1159 * 1160 * Note: in case @p name is invalid or isn't for the org_kde_kwin_contrast_manager interface, 1161 * the returned ContrastManager will not be valid. Therefore it's recommended to call 1162 * isValid on the created instance. 1163 * 1164 * @param name The name of the org_kde_kwin_contrast_manager interface to bind 1165 * @param version The version or the org_kde_kwin_contrast_manager interface to use 1166 * @param parent The parent for ContrastManager 1167 * 1168 * @returns The created ContrastManager. 1169 * @since 5.5 1170 **/ 1171 ContrastManager* 1172 createContrastManager(quint32 name, quint32 version, QObject* parent = nullptr); 1173 /** 1174 * Creates a SlideManager and sets it up to manage the interface identified by 1175 * @p name and @p version. 1176 * 1177 * Note: in case @p name is invalid or isn't for the org_kde_kwin_slide_manager interface, 1178 * the returned SlideManager will not be valid. Therefore it's recommended to call 1179 * isValid on the created instance. 1180 * 1181 * @param name The name of the org_kde_kwin_slide_manager interface to bind 1182 * @param version The version or the org_kde_kwin_slide_manager interface to use 1183 * @param parent The parent for SlideManager 1184 * 1185 * @returns The created SlideManager. 1186 * @since 5.5 1187 **/ 1188 SlideManager* createSlideManager(quint32 name, quint32 version, QObject* parent = nullptr); 1189 /** 1190 * Creates a DpmsManager and sets it up to manage the interface identified by 1191 * @p name and @p version. 1192 * 1193 * Note: in case @p name is invalid or isn't for the org_kde_kwin_dpms_manager interface, 1194 * the returned DpmsManager will not be valid. Therefore it's recommended to call 1195 * isValid on the created instance. 1196 * 1197 * @param name The name of the org_kde_kwin_dpms_manager interface to bind 1198 * @param version The version or the org_kde_kwin_dpms_manager interface to use 1199 * @param parent The parent for DpmsManager 1200 * 1201 * @returns The created DpmsManager. 1202 * @since 5.5 1203 **/ 1204 DpmsManager* createDpmsManager(quint32 name, quint32 version, QObject* parent = nullptr); 1205 /** 1206 * Creates a TextInputManagerV2 and sets it up to manage the interface identified by 1207 * @p name and @p version. 1208 * 1209 * This factory method supports the following interfaces: 1210 * @li zwp_text_input_manager_v2 1211 * 1212 * If @p name is for one of the supported interfaces the corresponding manager will be created, 1213 * otherwise @c null will be returned. 1214 * 1215 * @param name The name of the interface to bind 1216 * @param version The version of the interface to use 1217 * @param parent The parent for the TextInputManagerV2 1218 * 1219 * @returns The created TextInputManagerV2 1220 * @since 0.0.523 1221 **/ 1222 TextInputManagerV2* 1223 createTextInputManagerV2(quint32 name, quint32 version, QObject* parent = nullptr); 1224 /** 1225 * Creates a text_input_manager_v3 and sets it up to manage the interface identified by 1226 * @p name and @p version. 1227 * 1228 * This factory method supports the following interfaces: 1229 * @li zwp_text_input_manager_v3 1230 * 1231 * If @p name is for one of the supported interfaces the corresponding manager will be created, 1232 * otherwise @c null will be returned. 1233 * 1234 * @param name The name of the interface to bind 1235 * @param version The version of the interface to use 1236 * @param parent The parent for the text_input_manager_v3 1237 * 1238 * @returns The created text_input_manager_v3 1239 * @since 0.523.0 1240 **/ 1241 text_input_manager_v3* 1242 createTextInputManagerV3(quint32 name, quint32 version, QObject* parent = nullptr); 1243 /** 1244 * Creates a Viewporter and sets it up to manage the interface identified by 1245 * @p name and @p version. 1246 * 1247 * Note: in case @p name is invalid or isn't for the wp_viewporter interface, 1248 * the returned Viewporter will not be valid. Therefore it's recommended to call 1249 * isValid on the created instance. 1250 * 1251 * @param name The name of the interface to bind 1252 * @param version The version of the interface to use 1253 * @param parent The parent for the Viewporter 1254 * 1255 * @returns The created Viewporter 1256 * @since 0.518.0 1257 **/ 1258 Viewporter* createViewporter(quint32 name, quint32 version, QObject* parent = nullptr); 1259 /** 1260 * Creates an XdgShell and sets it up to manage the interface identified by 1261 * @p name and @p version. 1262 * 1263 * This factory method supports the following interfaces: 1264 * @li xdg_shell (Unstable version 5) 1265 * 1266 * If @p name is for one of the supported interfaces the corresponding shell will be created, 1267 * otherwise @c null will be returned. 1268 * 1269 * @param name The name of the interface to bind 1270 * @param version The version of the interface to use 1271 * @param parent The parent for the XdgShell 1272 * 1273 * @returns The created XdgShell 1274 * @since 0.0.525 1275 **/ 1276 XdgShell* createXdgShell(quint32 name, quint32 version, QObject* parent = nullptr); 1277 /** 1278 * Creates a RelativePointerManager and sets it up to manage the interface identified by 1279 * @p name and @p version. 1280 * 1281 * This factory method supports the following interfaces: 1282 * @li zwp_relative_pointer_manager_v1 1283 * 1284 * If @p name is for one of the supported interfaces the corresponding manager will be created, 1285 * otherwise @c null will be returned. 1286 * 1287 * @param name The name of the interface to bind 1288 * @param version The version of the interface to use 1289 * @param parent The parent for the RelativePointerManager 1290 * 1291 * @returns The created RelativePointerManager 1292 * @since 0.0.528 1293 **/ 1294 RelativePointerManager* 1295 createRelativePointerManager(quint32 name, quint32 version, QObject* parent = nullptr); 1296 /** 1297 * Creates a PointerGestures and sets it up to manage the interface identified by 1298 * @p name and @p version. 1299 * 1300 * This factory method supports the following interfaces: 1301 * @li zwp_pointer_gestures_v1 1302 * 1303 * If @p name is for one of the supported interfaces the corresponding manager will be created, 1304 * otherwise @c null will be returned. 1305 * 1306 * @param name The name of the interface to bind 1307 * @param version The version of the interface to use 1308 * @param parent The parent for the PointerGestures 1309 * 1310 * @returns The created PointerGestures 1311 * @since 0.0.529 1312 **/ 1313 PointerGestures* 1314 createPointerGestures(quint32 name, quint32 version, QObject* parent = nullptr); 1315 /** 1316 * Creates a PointerConstraints and sets it up to manage the interface identified by 1317 * @p name and @p version. 1318 * 1319 * This factory method supports the following interfaces: 1320 * @li zwp_pointer_constraints_v1 1321 * 1322 * If @p name is for one of the supported interfaces the corresponding manager will be created, 1323 * otherwise @c null will be returned. 1324 * 1325 * @param name The name of the interface to bind 1326 * @param version The version of the interface to use 1327 * @param parent The parent for the PointerConstraints 1328 * 1329 * @returns The created PointerConstraints 1330 * @since 0.0.529 1331 **/ 1332 PointerConstraints* 1333 createPointerConstraints(quint32 name, quint32 version, QObject* parent = nullptr); 1334 1335 /** 1336 * Creates a PresentationManager and sets it up to manage the interface identified by 1337 * @p name and @p version. 1338 * 1339 * Note: in case @p name is invalid or isn't for the wp_presentation interface, 1340 * the returned PresentationManager will not be valid. Therefore it's recommended to call 1341 * isValid on the created instance. 1342 * 1343 * @param name The name of the wp_presentation interface to bind 1344 * @param version The version or the wp_presentation interface to use 1345 * @param parent The parent for PresentationManager 1346 * 1347 * @returns The created PresentationManager. 1348 * @since 0.520.0 1349 **/ 1350 PresentationManager* 1351 createPresentationManager(quint32 name, quint32 version, QObject* parent = nullptr); 1352 1353 /** 1354 * Creates a PrimarySelectionDeviceManager and sets it up to manage the interface identified by 1355 * @p name and @p version. 1356 * 1357 * Note: in case @p name is invalid or isn't for the wl_data_device_manager interface, 1358 * the returned PrimarySelectionDeviceManager will not be valid. Therefore it's recommended to 1359 * call isValid on the created instance. 1360 * 1361 * @param name The name of the wl_data_device_manager interface to bind 1362 * @param version The version or the wl_data_device_manager interface to use 1363 * @param parent The parent for PrimarySelectionDeviceManager 1364 * 1365 * @returns The created PrimarySelectionDeviceManager. 1366 **/ 1367 PrimarySelectionDeviceManager* 1368 createPrimarySelectionDeviceManager(quint32 name, quint32 version, QObject* parent = nullptr); 1369 1370 /** 1371 * Creates a XdgActivationV1 and sets it up to manage the interface identified by 1372 * @p name and @p version. 1373 * 1374 * Note: in case @p name is invalid or isn't for the xdg_activation_v1 interface, 1375 * the returned XdgActivationV1 will not be valid. Therefore it's recommended to call 1376 * isValid on the created instance. 1377 * 1378 * @param name The name of the xdg_activation_v1 interface to bind 1379 * @param version The version or the xdg_activation_v1 interface to use 1380 * @param parent The parent for XdgActivationV1 1381 * 1382 * @returns The created XdgActivationV1. 1383 * @since 0.523.0 1384 **/ 1385 XdgActivationV1* 1386 createXdgActivationV1(quint32 name, quint32 version, QObject* parent = nullptr); 1387 1388 /** 1389 * Creates an XdgExporter and sets it up to manage the interface identified by 1390 * @p name and @p version. 1391 * 1392 * This factory method supports the following interfaces: 1393 * @li zxdg_exporter_v2 1394 * 1395 * If @p name is for one of the supported interfaces the corresponding manager will be created, 1396 * otherwise @c null will be returned. 1397 * 1398 * @returns The created XdgExporter 1399 * @since 0.0.540 1400 */ 1401 XdgExporter* createXdgExporter(quint32 name, quint32 version, QObject* parent = nullptr); 1402 1403 /** 1404 * Creates an XdgImporter and sets it up to manage the interface identified by 1405 * @p name and @p version. 1406 * 1407 * This factory method supports the following interfaces: 1408 * @li zxdg_importer_v2 1409 * 1410 * If @p name is for one of the supported interfaces the corresponding manager will be created, 1411 * otherwise @c null will be returned. 1412 * 1413 * @returns The created XdgImporter 1414 * @since 0.0.540 1415 */ 1416 XdgImporter* createXdgImporter(quint32 name, quint32 version, QObject* parent = nullptr); 1417 1418 /** 1419 * Creates an IdleInhibitManager and sets it up to manage the interface identified by 1420 * @p name and @p version. 1421 * 1422 * This factory method supports the following interfaces: 1423 * @li zwp_idle_inhibit_manager_v1 1424 * 1425 * If @p name is for one of the supported interfaces the corresponding manager will be created, 1426 * otherwise @c null will be returned. 1427 * 1428 * @returns The created IdleInhibitManager 1429 * @since 0.0.541 1430 */ 1431 IdleInhibitManager* 1432 createIdleInhibitManager(quint32 name, quint32 version, QObject* parent = nullptr); 1433 1434 /** 1435 * Creates a AppMenuManager and sets it up to manage the interface identified by 1436 * @p name and @p version. 1437 * 1438 * Note: in case @p name is invalid or isn't for the org_kde_kwin_appmenu_manager interface, 1439 * the returned AppMenuManager will not be valid. Therefore it's recommended to call 1440 * isValid on the created instance. 1441 * 1442 * @param name The name of the org_kde_kwin_appmenu_manager interface to bind 1443 * @param version The version or the org_kde_kwin_appmenu_manager interface to use 1444 * @param parent The parent for AppMenuManager 1445 * 1446 * @returns The created AppMenuManager. 1447 * @since 0.0.542 1448 **/ 1449 AppMenuManager* createAppMenuManager(quint32 name, quint32 version, QObject* parent = nullptr); 1450 1451 /** 1452 * Creates a ServerSideDecorationPaletteManager and sets it up to manage the interface 1453 * identified by 1454 * @p name and @p version. 1455 * 1456 * Note: in case @p name is invalid or isn't for the org_kde_kwin_appmenu_manager interface, 1457 * the returned ServerSideDecorationPaletteManager will not be valid. Therefore it's recommended 1458 * to call isValid on the created instance. 1459 * 1460 * @param name The name of the org_kde_kwin_server_decoration_palette_manager interface to bind 1461 * @param version The version or the org_kde_kwin_server_decoration_palette_manager interface to 1462 * use 1463 * @param parent The parent for ServerSideDecorationPaletteManager 1464 * 1465 * @returns The created ServerSideDecorationPaletteManager. 1466 * @since 0.0.542 1467 **/ 1468 ServerSideDecorationPaletteManager* createServerSideDecorationPaletteManager(quint32 name, 1469 quint32 version, 1470 QObject* parent 1471 = nullptr); 1472 1473 /** 1474 * Creates an XdgOutputManager and sets it up to manage the interface identified by 1475 * @p name and @p version. 1476 * 1477 * Note: in case @p name is invalid or isn't for the zxdg_output_manager_v1 interface, 1478 * the returned XdgOutputManager will not be valid. Therefore it's recommended to call 1479 * isValid on the created instance. 1480 * 1481 * @param name The name of the zxdg_output_manager_v1 interface to bind 1482 * @param version The version or the zxdg_output_manager_v1 interface to use 1483 * @param parent The parent for XdgOuptutManager 1484 * 1485 * @returns The created XdgOuptutManager. 1486 * @since 0.0.547 1487 **/ 1488 XdgOutputManager* 1489 createXdgOutputManager(quint32 name, quint32 version, QObject* parent = nullptr); 1490 1491 /** 1492 * Creates an XdgDecorationManager and sets it up to manage the interface identified by 1493 * @p name and @p version. 1494 * 1495 * Note: in case @p name is invalid or isn't for the zxdg_decoration_manager_v1 interface, 1496 * the returned XdgDecorationManager will not be valid. Therefore it's recommended to call 1497 * isValid on the created instance. 1498 * 1499 * @param name The name of the zxdg_decoration_manager_v1 interface to bind 1500 * @param version The version or the zxdg_decoration_manager_v1 interface to use 1501 * @param parent The parent for XdgDecorationManager 1502 * 1503 * @returns The created XdgDecorationManager. 1504 * @since 0.0.554 1505 **/ 1506 XdgDecorationManager* 1507 createXdgDecorationManager(quint32 name, quint32 version, QObject* parent = nullptr); 1508 1509 /** 1510 * Creates an KeyboardShortcutsInhibitManagerV1 and sets it up to manage the interface 1511 * identified by 1512 * @p name and @p version. 1513 * 1514 * Note: in case @p name is invalid or isn't for the zxdg_decoration_manager_v1 interface, 1515 * the returned KeyboardShortcutsInhibitManagerV1 will not be valid. Therefore it's recommended 1516 * to call isValid on the created instance. 1517 * 1518 * @param name The name of the zxdg_decoration_manager_v1 interface to bind 1519 * @param version The version or the zxdg_decoration_manager_v1 interface to use 1520 * @param parent The parent for KeyboardShortcutsInhibitManagerV1 1521 * 1522 * @returns The created KeyboardShortcutsInhibitManagerV1. 1523 * @since 0.0.554 1524 **/ 1525 KeyboardShortcutsInhibitManagerV1* createKeyboardShortcutsInhibitManagerV1(quint32 name, 1526 quint32 version, 1527 QObject* parent 1528 = nullptr); 1529 1530 /** Creates an LinuxDmabufV1 and sets it up to manage the interface identified by 1531 * @p name and @p version. 1532 * 1533 * Note: in case @p name is invalid or isn't for the zwp_linux_dmabuf_v1 interface, 1534 * the returned LinuxDmabufV1 will not be valid. Therefore it's recommended to call 1535 * isValid on the created instance. 1536 * 1537 * @param name The name of the zwp_linux_dmabuf_v1 interface to bind 1538 * @param version The version or the zwp_linux_dmabuf_v1 interface to use 1539 * @param parent The parent for LinuxDmabufV1 1540 * 1541 * @returns The created LinuxDmabufV1. 1542 * @since 0.520.0 1543 **/ 1544 LinuxDmabufV1* createLinuxDmabufV1(quint32 name, quint32 version, QObject* parent = nullptr); 1545 1546 ///@} 1547 1548 /** 1549 * cast operator to the low-level Wayland @c wl_registry 1550 **/ 1551 operator wl_registry*(); 1552 /** 1553 * cast operator to the low-level Wayland @c wl_registry 1554 **/ 1555 operator wl_registry*() const; 1556 /** 1557 * @returns access to the low-level Wayland @c wl_registry 1558 **/ 1559 wl_registry* registry(); 1560 1561 Q_SIGNALS: 1562 /** 1563 * @name Interface announced signals. 1564 **/ 1565 ///@{ 1566 /** 1567 * Emitted whenever a wl_compositor interface gets announced. 1568 * @param name The name for the announced interface 1569 * @param version The maximum supported version of the announced interface 1570 **/ 1571 void compositorAnnounced(quint32 name, quint32 version); 1572 /** 1573 * Emitted whenever a wl_shell interface gets announced. 1574 * @param name The name for the announced interface 1575 * @param version The maximum supported version of the announced interface 1576 **/ 1577 void shellAnnounced(quint32 name, quint32 version); 1578 /** 1579 * Emitted whenever a wl_seat interface gets announced. 1580 * @param name The name for the announced interface 1581 * @param version The maximum supported version of the announced interface 1582 **/ 1583 void seatAnnounced(quint32 name, quint32 version); 1584 /** 1585 * Emitted whenever a wl_shm interface gets announced. 1586 * @param name The name for the announced interface 1587 * @param version The maximum supported version of the announced interface 1588 **/ 1589 void shmAnnounced(quint32 name, quint32 version); 1590 /** 1591 * Emitted whenever a wl_subcompositor interface gets announced. 1592 * @param name The name for the announced interface 1593 * @param version The maximum supported version of the announced interface 1594 **/ 1595 void subCompositorAnnounced(quint32 name, quint32 version); 1596 /** 1597 * Emitted whenever a wl_output interface gets announced. 1598 * @param name The name for the announced interface 1599 * @param version The maximum supported version of the announced interface 1600 **/ 1601 void outputAnnounced(quint32 name, quint32 version); 1602 /** 1603 * Emitted whenever a _wl_fullscreen_shell interface gets announced. 1604 * @param name The name for the announced interface 1605 * @param version The maximum supported version of the announced interface 1606 **/ 1607 void fullscreenShellAnnounced(quint32 name, quint32 version); 1608 /** 1609 * Emitted whenever a wl_data_device_manager interface gets announced. 1610 * @param name The name for the announced interface 1611 * @param version The maximum supported version of the announced interface 1612 **/ 1613 void dataDeviceManagerAnnounced(quint32 name, quint32 version); 1614 /** 1615 * Emitted whenever a wp_drm_lease_device_v1 interface gets announced. 1616 * @param name The name for the announced interface 1617 * @param version The maximum supported version of the announced interface 1618 * @since 0.0.523 1619 **/ 1620 void drmLeaseDeviceV1Announced(quint32 name, quint32 version); 1621 /** 1622 * Emitted whenever a zwlr_layer_shell_v1 interface gets announced. 1623 * @param name The name for the announced interface 1624 * @param version The maximum supported version of the announced interface 1625 * @since 0.522.0 1626 **/ 1627 void layerShellV1Announced(quint32 name, quint32 version); 1628 1629 /** 1630 * Emitted whenever a zkwinft_output_management_v1 interface gets announced. 1631 * @param name The name for the announced interface 1632 * @param version The maximum supported version of the announced interface 1633 **/ 1634 void outputManagementV1Announced(quint32 name, quint32 version); 1635 /** 1636 * Emitted whenever a zkwinft_output_device_v1 interface gets announced. 1637 * @param name The name for the announced interface 1638 * @param version The maximum supported version of the announced interface 1639 **/ 1640 void outputDeviceV1Announced(quint32 name, quint32 version); 1641 1642 /** 1643 * Emitted whenever a zwlr_output_manager_v1 interface gets announced. 1644 * @param name The name for the announced interface 1645 * @param version The maximum supported version of the announced interface 1646 **/ 1647 void wlrOutputManagerV1Announced(quint32 name, quint32 version); 1648 1649 /** 1650 * Emitted whenever a org_kde_plasma_shell interface gets announced. 1651 * @param name The name for the announced interface 1652 * @param version The maximum supported version of the announced interface 1653 * @since 5.4 1654 **/ 1655 void plasmaShellAnnounced(quint32 name, quint32 version); 1656 /** 1657 * Emitted whenever a org_kde_plasma_virtual_desktop_management interface gets announced. 1658 * @param name The name for the announced interface 1659 * @param version The maximum supported version of the announced interface 1660 * @since 0.0.552 1661 **/ 1662 void plasmaVirtualDesktopManagementAnnounced(quint32 name, quint32 version); 1663 /** 1664 * Emitted whenever a org_kde_plasma_window_management interface gets announced. 1665 * @param name The name for the announced interface 1666 * @param version The maximum supported version of the announced interface 1667 * @since 5.4 1668 **/ 1669 void plasmaWindowManagementAnnounced(quint32 name, quint32 version); 1670 /** 1671 * Emitted whenever a org_kde_kwin_idle interface gets announced. 1672 * @param name The name for the announced interface 1673 * @param version The maximum supported version of the announced interface 1674 * @since 5.4 1675 **/ 1676 void idleAnnounced(quint32 name, quint32 version); 1677 /** 1678 * Emitted whenever a zwp_input_method_manager_v2 interface gets announced. 1679 * @param name The name for the announced interface 1680 * @param version The maximum supported version of the announced interface 1681 * @since 0.523.0 1682 **/ 1683 void inputMethodManagerV2Announced(quint32 name, quint32 version); 1684 /** 1685 * Emitted whenever a org_kde_kwin_remote_access_manager interface gets announced. 1686 * @param name The name for the announced interface 1687 * @param version The maximum supported version of the announced interface 1688 * @since 0.0.545 1689 **/ 1690 void remoteAccessManagerAnnounced(quint32 name, quint32 version); 1691 /** 1692 * Emitted whenever a org_kde_kwin_fake_input interface gets announced. 1693 * @param name The name for the announced interface 1694 * @param version The maximum supported version of the announced interface 1695 * @since 5.4 1696 **/ 1697 void fakeInputAnnounced(quint32 name, quint32 version); 1698 /** 1699 * Emitted whenever a org_kde_kwin_shadow_manager interface gets announced. 1700 * @param name The name for the announced interface 1701 * @param version The maximum supported version of the announced interface 1702 * @since 5.4 1703 **/ 1704 void shadowAnnounced(quint32 name, quint32 version); 1705 /** 1706 * Emitted whenever a org_kde_kwin_blur_manager interface gets announced. 1707 * @param name The name for the announced interface 1708 * @param version The maximum supported version of the announced interface 1709 * @since 5.5 1710 **/ 1711 void blurAnnounced(quint32 name, quint32 version); 1712 /** 1713 * Emitted whenever a org_kde_kwin_contrast_manager interface gets announced. 1714 * @param name The name for the announced interface 1715 * @param version The maximum supported version of the announced interface 1716 * @since 5.5 1717 **/ 1718 void contrastAnnounced(quint32 name, quint32 version); 1719 /** 1720 * Emitted whenever a org_kde_kwin_slide_manager interface gets announced. 1721 * @param name The name for the announced interface 1722 * @param version The maximum supported version of the announced interface 1723 * @since 5.5 1724 **/ 1725 void slideAnnounced(quint32 name, quint32 version); 1726 /** 1727 * Emitted whenever a org_kde_kwin_dpms_manager interface gets announced. 1728 * @param name The name for the announced interface 1729 * @param version The maximum supported version of the announced interface 1730 * @since 5.5 1731 **/ 1732 void dpmsAnnounced(quint32 name, quint32 version); 1733 /** 1734 * Emitted whenever a zwp_text_input_manager_v2 interface gets announced. 1735 * @param name The name for the announced interface 1736 * @param version The maximum supported version of the announced interface 1737 * @since 0.0.523 1738 **/ 1739 void textInputManagerV2Announced(quint32 name, quint32 version); 1740 /** 1741 * Emitted whenever a zwp_text_input_manager_v3 interface gets announced. 1742 * @param name The name for the announced interface 1743 * @param version The maximum supported version of the announced interface 1744 * @since 0.523.0 1745 **/ 1746 void textInputManagerV3Announced(quint32 name, quint32 version); 1747 /** 1748 * Emitted whenever a wp_viewporter interface gets announced. 1749 * @param name The name for the announced interface 1750 * @param version The maximum supported version of the announced interface 1751 * @since 0.518.0 1752 **/ 1753 void viewporterAnnounced(quint32 name, quint32 version); 1754 /** 1755 * Emitted whenever a zwp_relative_pointer_manager_v1 interface gets announced. 1756 * @param name The name for the announced interface 1757 * @param version The maximum supported version of the announced interface 1758 * @since 0.0.528 1759 **/ 1760 void relativePointerManagerUnstableV1Announced(quint32 name, quint32 version); 1761 /** 1762 * Emitted whenever a zwp_pointer_gestures_v1 interface gets announced. 1763 * @param name The name for the announced interface 1764 * @param version The maximum supported version of the announced interface 1765 * @since 0.0.529 1766 **/ 1767 void pointerGesturesUnstableV1Announced(quint32 name, quint32 version); 1768 /** 1769 * Emitted whenever a zwp_pointer_constraints_v1 interface gets announced. 1770 * @param name The name for the announced interface 1771 * @param version The maximum supported version of the announced interface 1772 * @since 0.0.529 1773 **/ 1774 void pointerConstraintsUnstableV1Announced(quint32 name, quint32 version); 1775 1776 /** 1777 * Emitted whenever a wp_presentation interface gets announced. 1778 * @param name The name for the announced interface 1779 * @param version The maximum supported version of the announced interface 1780 * @since 0.520.0 1781 **/ 1782 void presentationManagerAnnounced(quint32 name, quint32 version); 1783 /** 1784 * Emitted whenever a xdg_activation_v1 interface gets announced. 1785 * @param name The name for the announced interface 1786 * @param version The maximum supported version of the announced interface 1787 * @since 0.523.0 1788 **/ 1789 void xdgActivationV1Announced(quint32 name, quint32 version); 1790 /** 1791 * Emitted whenever a zwp_primary_selection_device_manager_v1 interface gets announced. 1792 * @param name The name for the announced interface 1793 * @param version The maximum supported version of the announced interface 1794 **/ 1795 void primarySelectionDeviceManagerAnnounced(quint32 name, quint32 version); 1796 1797 /** 1798 * Emitted whenever a zxdg_exporter_v2 interface gets announced. 1799 * @param name The name for the announced interface 1800 * @param version The maximum supported version of the announced interface 1801 * @since 0.0.540 1802 */ 1803 void exporterUnstableV2Announced(quint32 name, quint32 version); 1804 1805 /** 1806 * Emitted whenever a zxdg_importer_v2 interface gets announced. 1807 * @param name The name for the announced interface 1808 * @param version The maximum supported version of the announced interface 1809 * @since 0.0.540 1810 */ 1811 void importerUnstableV2Announced(quint32 name, quint32 version); 1812 1813 /** 1814 * Emitted whenever a zwp_idle_inhibit_manager_v1 interface gets announced. 1815 * @param name The name for the announced interface 1816 * @param version The maximum supported version of the announced interface 1817 * @since 0.0.541 1818 */ 1819 void idleInhibitManagerUnstableV1Announced(quint32 name, quint32 version); 1820 1821 /** 1822 * Emitted whenever a org_kde_kwin_appmenu_manager interface gets announced. 1823 * @param name The name for the announced interface 1824 * @param version The maximum supported version of the announced interface 1825 * @since 0.0.542 1826 */ 1827 void appMenuAnnounced(quint32 name, quint32 version); 1828 1829 /** 1830 * Emitted whenever a org_kde_kwin_server_decoration_palette_manager interface gets announced. 1831 * @param name The name for the announced interface 1832 * @param version The maximum supported version of the announced interface 1833 * @since 0.0.542 1834 */ 1835 void serverSideDecorationPaletteManagerAnnounced(quint32 name, quint32 version); 1836 1837 /** 1838 * Emitted whenever a zxdg_output_v1 interface gets announced. 1839 * @param name The name for the announced interface 1840 * @param version The maximum supported version of the announced interface 1841 * @since 0.0.547 1842 */ 1843 void xdgOutputAnnounced(quint32 name, quint32 version); 1844 1845 /** 1846 * Emitted whenever a xdg_wm_base (stable xdg shell) interface gets announced. 1847 * @param name The name for the announced interface 1848 * @param version The maximum supported version of the announced interface 1849 * @since 0.0.548 1850 **/ 1851 void xdgShellAnnounced(quint32 name, quint32 version); 1852 1853 /** 1854 * Emitted whenever a zxdg_decoration_manager_v1 interface gets announced. 1855 * @param name The name for the announced interface 1856 * @param version The maximum supported version of the announced interface 1857 * @since 0.0.554 1858 **/ 1859 void xdgDecorationAnnounced(quint32 name, quint32 version); 1860 1861 /** 1862 * Emitted whenever a zxdg_decoration_manager_v1 interface gets announced. 1863 * @param name The name for the announced interface 1864 * @param version The maximum supported version of the announced interface 1865 * @since 0.0.554 1866 **/ 1867 void keyboardShortcutsInhibitManagerAnnounced(quint32 name, quint32 version); 1868 1869 /** Emitted whenever a zwp_linux_dmabuf_v1 interface gets announced. 1870 * @param name The name for the announced interface 1871 * @param version The maximum supported version of the announced interface 1872 **/ 1873 void LinuxDmabufV1Announced(quint32 name, quint32 version); 1874 1875 ///@} 1876 1877 /** 1878 * @name Interface removed signals. 1879 **/ 1880 ///@{ 1881 /** 1882 * Emitted whenever a wl_compositor interface gets removed. 1883 * @param name The name for the removed interface 1884 **/ 1885 void compositorRemoved(quint32 name); 1886 /** 1887 * Emitted whenever a wl_shell interface gets removed. 1888 * @param name The name for the removed interface 1889 **/ 1890 void shellRemoved(quint32 name); 1891 /** 1892 * Emitted whenever a wl_seat interface gets removed. 1893 * @param name The name for the removed interface 1894 **/ 1895 void seatRemoved(quint32 name); 1896 /** 1897 * Emitted whenever a wl_shm interface gets removed. 1898 * @param name The name for the removed interface 1899 **/ 1900 void shmRemoved(quint32 name); 1901 /** 1902 * Emitted whenever a wl_subcompositor interface gets removed. 1903 * @param name The name for the removed interface 1904 **/ 1905 void subCompositorRemoved(quint32 name); 1906 /** 1907 * Emitted whenever a wl_output interface gets removed. 1908 * @param name The name for the removed interface 1909 **/ 1910 void outputRemoved(quint32 name); 1911 /** 1912 * Emitted whenever a _wl_fullscreen_shell interface gets removed. 1913 * @param name The name for the removed interface 1914 **/ 1915 void fullscreenShellRemoved(quint32 name); 1916 /** 1917 * Emitted whenever a wl_data_device_manager interface gets removed. 1918 * @param name The name for the removed interface 1919 **/ 1920 void dataDeviceManagerRemoved(quint32 name); 1921 /** 1922 * Emitted whenever a wp_drm_lease_device_v1 interface gets removed. 1923 * @param name The name for the removed interface 1924 * @since 0.523.0 1925 **/ 1926 void drmLeaseDeviceV1Removed(quint32 name); 1927 /** 1928 * Emitted whenever a zkwinft_output_management_v1 interface gets removed. 1929 * @param name The name for the removed interface 1930 **/ 1931 void outputManagementV1Removed(quint32 name); 1932 /** 1933 * Emitted whenever a zkwinft_output_device_v1 interface gets removed. 1934 * @param name The name for the removed interface 1935 **/ 1936 void outputDeviceV1Removed(quint32 name); 1937 1938 /** 1939 * Emitted whenever a zwlr_output_manager_v1 interface gets removed. 1940 * @param name The name for the removed interface 1941 **/ 1942 void wlrOutputManagerV1Removed(quint32 name); 1943 1944 /** 1945 * Emitted whenever a org_kde_plasma_shell interface gets removed. 1946 * @param name The name for the removed interface 1947 * @since 5.4 1948 **/ 1949 void plasmaShellRemoved(quint32 name); 1950 /** 1951 * Emitted whenever a org_kde_plasma_virtual_desktop_management interface gets removed. 1952 * @param name The name for the removed interface 1953 * @since 0.0.552 1954 **/ 1955 void plasmaVirtualDesktopManagementRemoved(quint32 name); 1956 /** 1957 * Emitted whenever a org_kde_plasma_window_management interface gets removed. 1958 * @param name The name for the removed interface 1959 * @since 5.4 1960 **/ 1961 void plasmaWindowManagementRemoved(quint32 name); 1962 /** 1963 * Emitted whenever a org_kde_kwin_idle interface gets removed. 1964 * @param name The name for the removed interface 1965 * @since 5.4 1966 **/ 1967 void idleRemoved(quint32 name); 1968 /** 1969 * Emitted whenever a zwp_input_method_manager_v2 interface gets removed. 1970 * @param name The name for the removed interface 1971 * @since 0.523.0 1972 **/ 1973 void inputMethodManagerV2Removed(quint32 name); 1974 /** 1975 * Emitted whenever a org_kde_kwin_remote_access_manager interface gets removed. 1976 * @param name The name for the removed interface 1977 * @since 0.0.545 1978 **/ 1979 void remoteAccessManagerRemoved(quint32 name); 1980 /** 1981 * Emitted whenever a org_kde_kwin_fake_input interface gets removed. 1982 * @param name The name for the removed interface 1983 * @since 5.4 1984 **/ 1985 void fakeInputRemoved(quint32 name); 1986 /** 1987 * Emitted whenever a zwlr_layer_shell_v1 interface gets removed. 1988 * @param name The name for the removed interface 1989 * @since 0.522.0 1990 **/ 1991 void layerShellV1Removed(quint32 name); 1992 /** 1993 * Emitted whenever a org_kde_kwin_shadow_manager interface gets removed. 1994 * @param name The name for the removed interface 1995 * @since 5.4 1996 **/ 1997 void shadowRemoved(quint32 name); 1998 /** 1999 * Emitted whenever a org_kde_kwin_blur_manager interface gets removed. 2000 * @param name The name for the removed interface 2001 * @since 5.5 2002 **/ 2003 void blurRemoved(quint32 name); 2004 /** 2005 * Emitted whenever a org_kde_kwin_contrast_manager interface gets removed. 2006 * @param name The name for the removed interface 2007 * @since 5.5 2008 **/ 2009 void contrastRemoved(quint32 name); 2010 /** 2011 * Emitted whenever a org_kde_kwin_slide_manager interface gets removed. 2012 * @param name The name for the removed interface 2013 * @since 5.5 2014 **/ 2015 void slideRemoved(quint32 name); 2016 /** 2017 * Emitted whenever a org_kde_kwin_dpms_manager interface gets removed. 2018 * @param name The name for the removed interface 2019 * @since 5.5 2020 **/ 2021 void dpmsRemoved(quint32 name); 2022 /** 2023 * Emitted whenever a zwp_text_input_manager_v2 interface gets removed. 2024 * @param name The name for the removed interface 2025 * @since 0.0.523 2026 **/ 2027 void textInputManagerV2Removed(quint32 name); 2028 /** 2029 * Emitted whenever a zwp_text_input_manager_v3 interface gets removed. 2030 * @param name The name for the removed interface 2031 * @since 0.523.0 2032 **/ 2033 void textInputManagerV3Removed(quint32 name); 2034 /** 2035 * Emitted whenever a wp_viewporter interface gets removed. 2036 * @param name The name for the removed interface 2037 * @since 0.518.0 2038 **/ 2039 void viewporterRemoved(quint32 name); 2040 /** 2041 * Emitted whenever a zwp_relative_pointer_manager_v1 interface gets removed. 2042 * @param name The name for the removed interface 2043 * @since 0.0.528 2044 **/ 2045 void relativePointerManagerUnstableV1Removed(quint32 name); 2046 /** 2047 * Emitted whenever a zwp_pointer_gestures_v1 interface gets removed. 2048 * @param name The name for the removed interface 2049 * @since 0.0.529 2050 **/ 2051 void pointerGesturesUnstableV1Removed(quint32 name); 2052 /** 2053 * Emitted whenever a zwp_pointer_constraints_v1 interface gets removed. 2054 * @param name The name for the removed interface 2055 * @since 0.0.529 2056 **/ 2057 void pointerConstraintsUnstableV1Removed(quint32 name); 2058 2059 /** 2060 * Emitted whenever a wp_presentation interface gets removed. 2061 * @param name The name for the removed interface 2062 * @since 0.520.0 2063 **/ 2064 void presentationManagerRemoved(quint32 name); 2065 2066 /** 2067 * Emitted whenever a zwp_primary_selection_device_manager_v1 interface gets removed. 2068 * @param name The name for the removed interface 2069 **/ 2070 void primarySelectionDeviceManagerRemoved(quint32 name); 2071 2072 /** 2073 * Emitted whenever a zxdg_exporter_v2 interface gets removed. 2074 * @param name The name for the removed interface 2075 * @since 0.0.540 2076 **/ 2077 void exporterUnstableV2Removed(quint32 name); 2078 2079 /** 2080 * Emitted whenever a zxdg_importer_v2 interface gets removed. 2081 * @param name The name for the removed interface 2082 * @since 0.0.540 2083 **/ 2084 void importerUnstableV2Removed(quint32 name); 2085 2086 /** 2087 * Emitted whenever a zwp_idle_inhibit_manager_v1 interface gets removed. 2088 * @param name The name of the removed interface 2089 * @since 0.0.541 2090 **/ 2091 void idleInhibitManagerUnstableV1Removed(quint32 name); 2092 2093 /** 2094 * Emitted whenever a org_kde_kwin_appmenu_manager gets removed. 2095 * @param name The name of the removed interface 2096 * @since 0.0.542 2097 **/ 2098 void appMenuRemoved(quint32 name); 2099 2100 /** 2101 * Emitted whenever a org_kde_kwin_server_decoration_palette_manager gets removed. 2102 * @param name The name of the removed interface 2103 * @since 0.0.542 2104 **/ 2105 void serverSideDecorationPaletteManagerRemoved(quint32 name); 2106 2107 /** 2108 * Emitted whenever a xdg_activation_v1 interface gets removed. 2109 * @param name The name for the removed interface 2110 * @since 0.523.0 2111 **/ 2112 void xdgActivationV1Removed(quint32 name); 2113 /** 2114 * Emitted whenever a zxdg_output_v1 gets removed. 2115 * @param name The name of the removed interface 2116 * @since 0.0.547 2117 **/ 2118 void xdgOutputRemoved(quint32 name); 2119 /** 2120 * Emitted whenever an xdg_wm_base (stable xdgshell) interface gets removed. 2121 * @param name The name for the removed interface 2122 * @since 0.0.548 2123 **/ 2124 void xdgShellRemoved(quint32 name); 2125 2126 /** 2127 * Emitted whenever a zxdg_decoration_manager_v1 gets removed. 2128 * @param name The name of the removed interface 2129 * @since 0.0.554 2130 **/ 2131 void xdgDecorationRemoved(quint32 name); 2132 2133 /** 2134 * Emitted whenever a zxdg_decoration_manager_v1 gets removed. 2135 * @param name The name of the removed interface 2136 * @since 0.0.554 2137 **/ 2138 void keyboardShortcutsInhibitManagerRemoved(quint32 name); 2139 2140 /** Emitted whenever a zwp_linux_dmabuf_v1 gets removed. 2141 * @param name The name of the removed interface 2142 **/ 2143 void LinuxDmabufV1Removed(quint32 name); 2144 2145 void keystateAnnounced(quint32 name, quint32 version); 2146 void keystateRemoved(quint32 name); 2147 2148 ///@} 2149 /** 2150 * Generic announced signal which gets emitted whenever an interface gets 2151 * announced. 2152 * 2153 * This signal is emitted before the dedicated signals are handled. If one 2154 * wants to know about one of the well-known interfaces use the dedicated 2155 * signals instead. Especially the bind methods might fail before the dedicated 2156 * signals are emitted. 2157 * 2158 * @param interface The interface (e.g. wl_compositor) which is announced 2159 * @param name The name for the announced interface 2160 * @param version The maximum supported version of the announced interface 2161 **/ 2162 void interfaceAnnounced(QByteArray interface, quint32 name, quint32 version); 2163 /** 2164 * Generic removal signal which gets emitted whenever an interface gets removed. 2165 * 2166 * This signal is emitted after the dedicated signals are handled. 2167 * 2168 * @param name The name for the removed interface 2169 **/ 2170 void interfaceRemoved(quint32 name); 2171 /** 2172 * Emitted when the Wayland display is done flushing the initial interface 2173 * callbacks, announcing wl_display properties. This can be used to compress 2174 * events. Note that this signal is emitted only after announcing interfaces, 2175 * such as outputs, but not after receiving callbacks of interface properties, 2176 * such as the output's geometry, modes, etc.. 2177 * This signal is emitted from the wl_display_sync callback. 2178 **/ 2179 void interfacesAnnounced(); 2180 2181 Q_SIGNALS: 2182 /* 2183 * Emitted when the registry has been released. 2184 */ 2185 void registryReleased(); 2186 2187 private: 2188 class Private; 2189 std::unique_ptr<Private> d; 2190 }; 2191 2192 } 2193 } 2194 2195 #endif 2196