private float MeasureNextlineLength(string text)
{
float xOffset = 0;
for(int i=0; i < text.Length;i++)
{
char c = text[i];
if (c == '\r' || c == '\n')
{
break;
}
if (IsMonospacingActive)
{
xOffset += MonoSpaceWidth;
}
else
{
//space
if (c == ' ')
{
xOffset += (float)Math.Ceiling(fontData.meanGlyphWidth * Options.WordSpacing);
}
//normal character
else if (fontData.CharSetMapping.ContainsKey(c))
{
QFontGlyph glyph = fontData.CharSetMapping[c];
xOffset += (float)Math.Ceiling(glyph.rect.Width + fontData.meanGlyphWidth * Options.CharacterSpacing + fontData.GetKerningPairCorrection(i, text, null));
}
}
}
return xOffset;
}