#pragma once #include "Target.hpp" #include "../../desktop/view/Window.hpp" #include "../../desktop/view/Group.hpp" namespace Layout { class CWindowGroupTarget : public ITarget { public: static SP create(SP g); virtual ~CWindowGroupTarget() = default; virtual eTargetType type(); virtual void setPositionGlobal(const CBox& box); virtual void assignToSpace(const SP& space, std::optional focalPoint = std::nullopt); virtual PHLWINDOW window() const; virtual bool floating(); virtual void setFloating(bool x); virtual std::expected desiredGeometry(); virtual eFullscreenMode fullscreenMode(); virtual void setFullscreenMode(eFullscreenMode mode); virtual std::optional minSize(); virtual std::optional maxSize(); virtual void damageEntire(); virtual void warpPositionSize(); virtual void onUpdateSpace(); private: CWindowGroupTarget(SP g); void updatePos(); WP m_group; }; };