protected float DrawLine(TextPortion.TextLine _textLine, FColor _color, int _lineNumber, float _indent, EAlignment _alignment) { var line = _textLine.Text; var part = line.Split(TextPortion.Punctuation).ToArray(); var processedChars = 0; var x = (float)ContentRct.Left * Constants.TILE_SIZE; var lineSize = DrawHelper.MeasureString(Font, line); switch (_alignment) { case EAlignment.NORMAL: x += _indent + _textLine.Left; break; case EAlignment.LEFT: x += _indent; break; case EAlignment.RIGHT: x += ContentRct.Width * Constants.TILE_SIZE - lineSize.Width - _indent; break; case EAlignment.CENTER: x += ContentRct.Width * Constants.TILE_SIZE / 2f - lineSize.Width / 2f; break; } var y = ContentRct.Top * Constants.TILE_SIZE + _lineNumber * LineHeight; for (var partIndex = 0; partIndex < part.Length; partIndex++) { var color = _color; var addStr = part[partIndex]; FColor highlight; if (_textLine.Highlights != null && _textLine.Highlights.TryGetValue(addStr, out highlight)) { color = highlight; processedChars += addStr.Length; } else { processedChars += addStr.Length; addStr += (processedChars >= line.Length) ? "" : line[processedChars].ToString(); processedChars++; } var size = DrawHelper.MeasureString(Font, addStr); DrawHelper.DrawString(Font, addStr, x, y, color); x += size.Width + 2; } return(x); }
protected void DrawLine(TextPortion.TextLine _textLine, FColor _color, float _x, float _y) { var line = _textLine.Text; var part = line.Split(TextPortion.Punctuation).ToArray(); var processedChars = 0; var x = _x + _textLine.Left; for (var partIndex = 0; partIndex < part.Length; partIndex++) { var color = _color; var addStr = part[partIndex]; FColor highlight; if (_textLine.Highlights != null && _textLine.Highlights.TryGetValue(addStr, out highlight)) { color = highlight; } processedChars += addStr.Length; addStr += (processedChars == 0 || processedChars >= line.Length) ? "" : line[processedChars].ToString(); processedChars++; var size = DrawHelper.MeasureString(Font, addStr); DrawHelper.DrawString(Font, addStr, x, _y, color); x += size.Width; } }