#pragma once interface IFancyZonesSettings; interface IZoneWindow; class WindowMoveHandler { public: WindowMoveHandler(const winrt::com_ptr& settings); ~WindowMoveHandler(); bool InMoveSize() const noexcept; bool IsDragEnabled() const noexcept; void MoveSizeStart(HWND window, HMONITOR monitor, POINT const& ptScreen, const std::map>& zoneWindowMap) noexcept; void MoveSizeUpdate(HMONITOR monitor, POINT const& ptScreen, const std::map>& zoneWindowMap) noexcept; void MoveSizeEnd(HWND window, POINT const& ptScreen, const std::map>& zoneWindowMap) noexcept; void MoveWindowIntoZoneByIndex(HWND window, HMONITOR monitor, int index, const std::map>& zoneWindowMap) noexcept; bool MoveWindowIntoZoneByDirection(HMONITOR monitor, HWND window, DWORD vkCode, bool cycle, const std::map>& zoneWindowMap); private: class WindowMoveHandlerPrivate* pimpl; };