diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-04-20 19:34:18 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-04-20 19:39:59 +0100 |
| commit | 84ee839ca690c89dc9498e85eefcdec265d3a765 (patch) | |
| tree | e8de1e29cd798814c898af4e2d1a7bb12f36fda7 /src/protocols/XDGOutput.hpp | |
| parent | a94534606412ec30620f68751382cea5b700ba8d (diff) | |
XDG-Output: move to hyprwayland-scanner
Diffstat (limited to 'src/protocols/XDGOutput.hpp')
| -rw-r--r-- | src/protocols/XDGOutput.hpp | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/src/protocols/XDGOutput.hpp b/src/protocols/XDGOutput.hpp index 2469e600..d2314b7b 100644 --- a/src/protocols/XDGOutput.hpp +++ b/src/protocols/XDGOutput.hpp @@ -1,18 +1,28 @@ #pragma once +#include "xdg-output-unstable-v1.hpp" #include "WaylandProtocol.hpp" #include <optional> class CMonitor; +class CXDGOutputProtocol; -struct SXDGOutput { - CMonitor* monitor = nullptr; - std::unique_ptr<CWaylandResource> resource; +class CXDGOutput { + public: + CXDGOutput(SP<CZxdgOutputV1> resource, CMonitor* monitor_); + + void sendDetails(); + + private: + CMonitor* monitor = nullptr; + SP<CZxdgOutputV1> resource; - std::optional<Vector2D> overridePosition; + std::optional<Vector2D> overridePosition; - wl_client* client = nullptr; - bool isXWayland = false; + wl_client* client = nullptr; + bool isXWayland = false; + + friend class CXDGOutputProtocol; }; class CXDGOutputProtocol : public IWaylandProtocol { @@ -23,12 +33,15 @@ class CXDGOutputProtocol : public IWaylandProtocol { void onManagerResourceDestroy(wl_resource* res); void onOutputResourceDestroy(wl_resource* res); - void onManagerGetXDGOutput(wl_client* client, wl_resource* resource, uint32_t id, wl_resource* outputResource); + void onManagerGetXDGOutput(CZxdgOutputManagerV1* mgr, uint32_t id, wl_resource* outputResource); private: - void updateOutputDetails(SXDGOutput* pOutput); - void updateAllOutputs(); + void updateAllOutputs(); + + std::vector<UP<CZxdgOutputManagerV1>> m_vManagerResources; + std::vector<UP<CXDGOutput>> m_vXDGOutputs; +}; - std::vector<std::unique_ptr<CWaylandResource>> m_vManagerResources; - std::vector<std::unique_ptr<SXDGOutput>> m_vXDGOutputs; -};
\ No newline at end of file +namespace PROTO { + inline UP<CXDGOutputProtocol> xdgOutput; +}; |
