Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }