From 84ee839ca690c89dc9498e85eefcdec265d3a765 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sat, 20 Apr 2024 19:34:18 +0100 Subject: XDG-Output: move to hyprwayland-scanner --- src/protocols/XDGOutput.hpp | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) (limited to 'src/protocols/XDGOutput.hpp') 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 class CMonitor; +class CXDGOutputProtocol; -struct SXDGOutput { - CMonitor* monitor = nullptr; - std::unique_ptr resource; +class CXDGOutput { + public: + CXDGOutput(SP resource, CMonitor* monitor_); + + void sendDetails(); + + private: + CMonitor* monitor = nullptr; + SP resource; - std::optional overridePosition; + std::optional 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> m_vManagerResources; + std::vector> m_vXDGOutputs; +}; - std::vector> m_vManagerResources; - std::vector> m_vXDGOutputs; -}; \ No newline at end of file +namespace PROTO { + inline UP xdgOutput; +}; -- cgit v1.2.3