#include "../../FloatingAlgorithm.hpp" namespace Layout { class CAlgorithm; } namespace Layout::Floating { class CDefaultFloatingAlgorithm : public IFloatingAlgorithm { public: CDefaultFloatingAlgorithm() = default; virtual ~CDefaultFloatingAlgorithm() = default; virtual void newTarget(SP target); virtual void movedTarget(SP target, std::optional focalPoint = std::nullopt); virtual void removeTarget(SP target); virtual void resizeTarget(const Vector2D& Δ, SP target, eRectCorner corner = CORNER_NONE); virtual void moveTarget(const Vector2D& Δ, SP target); virtual void swapTargets(SP a, SP b); virtual void moveTargetInDirection(SP t, Math::eDirection dir, bool silent); private: CBox fitBoxInWorkArea(const CBox& box, SP t); }; };