File indexing completed on 2024-10-06 08:02:01
0001 /* 0002 * SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 * SPDX-FileCopyrightText: 2018 Drew DeVault <sir@cmpwn.com> 0004 * 0005 * SPDX-License-Identifier: LGPL-3.0-or-later 0006 */ 0007 0008 #ifndef _LAYERSURFACE_H 0009 #define _LAYERSURFACE_H 0010 0011 #include <wayland-client.h> 0012 0013 #include "qwaylandlayershellintegration_p.h" 0014 0015 #include "layershellqt_export.h" 0016 #include <QtWaylandClient/private/qwaylandshellsurface_p.h> 0017 #include <qwayland-wlr-layer-shell-unstable-v1.h> 0018 0019 namespace LayerShellQt 0020 { 0021 0022 class Window; 0023 0024 class LAYERSHELLQT_EXPORT QWaylandLayerSurface : public QtWaylandClient::QWaylandShellSurface, public QtWayland::zwlr_layer_surface_v1 0025 { 0026 Q_OBJECT 0027 public: 0028 QWaylandLayerSurface(QWaylandLayerShellIntegration *shell, QtWaylandClient::QWaylandWindow *window); 0029 ~QWaylandLayerSurface() override; 0030 0031 bool isExposed() const override 0032 { 0033 return m_configured; 0034 } 0035 void attachPopup(QtWaylandClient::QWaylandShellSurface *popup) override; 0036 0037 void setAnchor(uint32_t anchor); 0038 void setExclusiveZone(int32_t zone); 0039 void setExclusiveEdge(uint32_t edge); 0040 void setMargins(const QMargins &margins); 0041 void setKeyboardInteractivity(uint32_t interactivity); 0042 void setLayer(uint32_t layer); 0043 0044 void applyConfigure() override; 0045 void setWindowGeometry(const QRect &geometry) override; 0046 0047 bool requestActivate() override; 0048 void setXdgActivationToken(const QString &token) override; 0049 void requestXdgActivationToken(quint32 serial) override; 0050 0051 private: 0052 void zwlr_layer_surface_v1_configure(uint32_t serial, uint32_t width, uint32_t height) override; 0053 void zwlr_layer_surface_v1_closed() override; 0054 0055 QWaylandLayerShellIntegration *m_shell; 0056 LayerShellQt::Window *m_interface; 0057 QSize m_pendingSize; 0058 QString m_activationToken; 0059 bool m_configured = false; 0060 }; 0061 0062 } 0063 0064 #endif