#pragma once #ifndef NOMINMAX #define NOMINMAX #endif #include #include namespace XCEngine::UI::Editor::Host { enum class BorderlessWindowResizeEdge : std::uint8_t { None = 0, Left, Top, Right, Bottom, TopLeft, TopRight, BottomLeft, BottomRight }; struct BorderlessWindowFrameMetrics { float resizeBorderThickness = 6.0f; int minimumOuterWidth = 640; int minimumOuterHeight = 360; }; BorderlessWindowResizeEdge HitTestBorderlessWindowResizeEdge( const ::XCEngine::UI::UIRect& clientRect, const ::XCEngine::UI::UIPoint& point, const BorderlessWindowFrameMetrics& metrics = {}); LPCWSTR ResolveBorderlessWindowResizeCursor(BorderlessWindowResizeEdge edge); RECT ComputeBorderlessWindowResizeRect( const RECT& initialRect, const POINT& initialScreenPoint, const POINT& currentScreenPoint, BorderlessWindowResizeEdge edge, int minimumOuterWidth, int minimumOuterHeight); } // namespace XCEngine::UI::Editor::Host