Implement Button.ClipText.

This commit is contained in:
Pieter-Jan Briers
2019-03-05 09:35:18 +01:00
parent f8359a38e0
commit 2848d40d5d

View File

@@ -209,8 +209,16 @@ namespace SS14.Client.UserInterface.Controls
foreach (var chr in _text)
{
var advance = (int)font.DrawChar(handle, chr, baseLine, color);
baseLine += new Vector2i(advance, 0);
if (!font.TryGetCharMetrics(chr, out var metrics))
{
continue;
}
if (!(ClipText && (baseLine.X < contentBox.Left || baseLine.X + metrics.Advance > contentBox.Right)))
{
font.DrawChar(handle, chr, baseLine, color);
}
baseLine += (metrics.Advance, 0);
}
}
@@ -227,6 +235,11 @@ namespace SS14.Client.UserInterface.Controls
var fontHeight = font.Height;
if (ClipText)
{
return (0, fontHeight) + style.MinimumSize;
}
var width = _ensureWidthCache();
return new Vector2(width, fontHeight) + style.MinimumSize;