Duality.Resources.Font.FitText C# (CSharp) Method

FitText() public method

Returns a text that is cropped to fit a maximum width using this Font.
public FitText ( string text, float maxWidth, FitTextMode fitMode = FitTextMode.ByChar ) : string
text string The original text.
maxWidth float The maximum width it may occupy.
fitMode FitTextMode The mode by which the text fitting algorithm operates.
return string
        public string FitText(string text, float maxWidth, FitTextMode fitMode = FitTextMode.ByChar)
        {
            Vector2 textSize = Vector2.Zero;

            float curOffset = 0.0f;
            GlyphData glyphData;
            Rect uvRect;
            float glyphXOff;
            float glyphXAdv;
            int lastValidLength = 0;
            for (int i = 0; i < text.Length; i++)
            {
                this.ProcessTextAdv(text, i, out glyphData, out uvRect, out glyphXAdv, out glyphXOff);

                textSize.X = Math.Max(textSize.X, curOffset + glyphXAdv);
                textSize.Y = Math.Max(textSize.Y, glyphData.height);

                if (textSize.X > maxWidth) return lastValidLength > 0 ? text.Substring(0, lastValidLength) : "";

                if (fitMode == FitTextMode.ByChar)
                    lastValidLength = i;
                else if (text[i] == ' ')
                    lastValidLength = fitMode == FitTextMode.ByWordLeadingSpace ? i : i + 1;

                curOffset += glyphXAdv;
            }

            return text;
        }