public void Draw() { if (!HasSelection) { return; } int visibleSelectionStartIndex = Math.Max(SelectionStart, _input.VisibleStartIndex); int visibleEndIndex = _input.VisibleStartIndex + _input.VisibleLength - 1; int length = Math.Min(SelectionLength, visibleEndIndex - visibleSelectionStartIndex + 1); var offset = new Vector2( _input.Console.Padding + _input.Console.ConsoleInput.InputPrefixSize.X, _input.Console.WindowArea.Y + _input.Console.WindowArea.Height - _input.Console.Padding - _input.Console.FontSize.Y); float startX = _input.MeasureSubstring(_input.VisibleStartIndex, visibleSelectionStartIndex - _input.VisibleStartIndex).X; if (startX > 0) { startX += _input.Console.Font.Spacing; } float width = _input.MeasureSubstring(visibleSelectionStartIndex, length).X; var destRectangle = new RectangleF( offset.X + startX, offset.Y, width, _input.Console.FontSize.Y); _input.Console.SpriteBatch.Draw( _input.Console.WhiteTexture, destRectangle, Color); }
public void Draw() { if (_drawCaret) { float offset = _input.Console.Padding + _input.InputPrefixSize.X; float positionX = _input.MeasureSubstring(_input.VisibleStartIndex, Index - _input.VisibleStartIndex).X; if (positionX > 0) { positionX += _input.Console.Font.Spacing; } var position = new Vector2( offset + positionX, _input.Console.WindowArea.Y + _input.Console.WindowArea.Height - _input.Console.Padding - _input.Console.FontSize.Y); _input.Console.SpriteBatch.DrawString(_input.Console.Font, Symbol, position, _input.Console.FontColor); } }