/// <summary> /// Returns a list of lines from the terminal model buffer /// </summary> /// <param name="from">The first line to return</param> /// <param name="count">The number of lines to return as a liat</param> /// <returns>The requetsed lines</returns> public TerminalLine [] GetLines(int from, int count) { var result = new TerminalLine[count]; for (int i = 0; i < count; i++) { result[i] = ((from + i) >= Parent.Buffer.Count) ? null : Parent.Buffer[from + i]; } return(result); }
TerminalRun[] CopyLine(TerminalLine line) { var runs = line.Runs; var result = new TerminalRun[runs.Count]; for (int i = 0; i < runs.Count; ++i) { var run = runs[i]; result[i] = new TerminalRun(run.Text, run.Font); } return(result); }
public void AddMessage(string text, TerminalFont font) { prepareHistory(1); var line = new TerminalLine(); int leftPadding = (Terminal.Size.Col - text.Length) / 2; int rightPadding = (Terminal.Size.Col - text.Length + 1) / 2; line.SetCharacters(0, new string(' ', leftPadding), font); line.SetCharacters(leftPadding, text, font); line.SetCharacters(leftPadding + text.Length, new string(' ', rightPadding), font); var visual = new TerminalLineVisual(this, line); visual.Offset = new Vector(0.0, history.Count * CharHeight); AddVisualChild(visual); history.PushBack(line); }
public void DeleteCharactersTest() { TerminalLine line = new TerminalLine(); line.SetCharacters(0, new string('0', 4), new TerminalFont() { Foreground = Color.FromRgb(0, 0, 0) }); line.SetCharacters(4, new string('1', 4), new TerminalFont() { Foreground = Color.FromRgb(1, 1, 1) }); line.SetCharacters(8, new string('2', 4), new TerminalFont() { Foreground = Color.FromRgb(2, 2, 2) }); line.SetCharacters(12, new string('3', 4), new TerminalFont() { Foreground = Color.FromRgb(3, 3, 3) }); line.DeleteCharacters(7, 6); TerminalRun[] expectedRuns = new[] { new TerminalRun(new string('0', 4), new TerminalFont() { Foreground = Color.FromRgb(0, 0, 0) }), new TerminalRun(new string('1', 3), new TerminalFont() { Foreground = Color.FromRgb(1, 1, 1) }), new TerminalRun(new string('3', 3), new TerminalFont() { Foreground = Color.FromRgb(3, 3, 3) }), }; AssertAreEqual(line.Runs[0], expectedRuns[0]); AssertAreEqual(line.Runs[1], expectedRuns[1]); AssertAreEqual(line.Runs[2], expectedRuns[2]); }
public TerminalLineVisual(TerminalControlCore terminal, TerminalLine line) { this.Terminal = terminal; this.Line = line; }