#pragma once #include "../DesktopTypes.hpp" #include namespace Desktop::History { class CWindowHistoryTracker { public: CWindowHistoryTracker(); ~CWindowHistoryTracker() = default; CWindowHistoryTracker(const CWindowHistoryTracker&) = delete; CWindowHistoryTracker(CWindowHistoryTracker&) = delete; CWindowHistoryTracker(CWindowHistoryTracker&&) = delete; // History is ordered old -> new, meaning .front() is oldest, while .back() is newest const std::vector& fullHistory(); std::vector historyForWorkspace(PHLWORKSPACE ws); private: std::vector m_history; void track(PHLWINDOW w); void gc(); }; SP windowTracker(); };