#pragma once #include "../defines.hpp" #include "../protocols/ToplevelExport.hpp" #include "../protocols/TextInputV1.hpp" #include "../protocols/GlobalShortcuts.hpp" #include "../protocols/Screencopy.hpp" #include "../helpers/memory/WeakPtr.hpp" #include "../helpers/signal/Listener.hpp" #include class CProtocolManager { public: CProtocolManager(); // TODO: rewrite to use the new protocol framework std::unique_ptr m_pToplevelExportProtocolManager; std::unique_ptr m_pTextInputV1ProtocolManager; std::unique_ptr m_pGlobalShortcutsProtocolManager; std::unique_ptr m_pScreencopyProtocolManager; private: std::unordered_map m_mModeChangeListeners; void onMonitorModeChange(CMonitor* pMonitor); }; inline std::unique_ptr g_pProtocolManager;