#pragma once #include #include #include namespace XCEngine::UI::Editor::Widgets { inline float MeasureUIEditorTextLayoutHeight(float fontSize) { return (std::max)(0.0f, fontSize * 1.35f); } inline float ResolveUIEditorTextTop( const ::XCEngine::UI::UIRect& rect, float fontSize, float offsetY = 0.0f) { const float textHeight = MeasureUIEditorTextLayoutHeight(fontSize); const float centeredTop = rect.y + (std::max)(0.0f, std::floor((rect.height - textHeight) * 0.5f)); return centeredTop - 1.0f + offsetY; } inline ::XCEngine::UI::UIRect ResolveUIEditorTextClipRect( const ::XCEngine::UI::UIRect& rect, float fontSize) { const float extraPadding = (std::max)(2.0f, std::ceil(fontSize * 0.35f)); return ::XCEngine::UI::UIRect( rect.x, rect.y - 1.0f, rect.width, rect.height + extraPadding + 1.0f); } } // namespace XCEngine::UI::Editor::Widgets