| 1234567891011121314151617181920212223242526 |
- #pragma once
- #include "lumacs/window.hpp"
- #include "lumacs/layout_node.hpp"
- #include <memory>
- #include <vector>
- namespace lumacs {
- /// @brief Interface for accessing window management functionality.
- class IWindowManager {
- public:
- virtual ~IWindowManager() = default;
- /// @brief Get the currently active window.
- virtual std::shared_ptr<Window> active_window() const = 0;
- /// @brief Collect all windows in the layout tree.
- /// This is a helper to allow managers to iterate over all windows.
- virtual void collect_windows(LayoutNode* node, std::vector<std::shared_ptr<Window>>& windows) = 0;
-
- /// @brief Get the root of the window layout tree.
- virtual std::shared_ptr<LayoutNode> root_layout() const = 0;
- };
- } // namespace lumacs
|