internal void SwitchToAlternateBuffer() { MainBufferCursorTop = MainBuffer.CursorTop - MainBuffer.WindowTop; MainBufferCursorLeft = MainBuffer.CursorLeft - MainBuffer.WindowLeft; AlternateBuffer = new TerminalScreenBuffer(this); AlternateBuffer.SetCursorPosition(MainBufferCursorLeft, MainBufferCursorTop); ConsoleEx.SwapBuffers(AlternateBuffer); CurrentBuffer = AlternateBuffer; }
public TerminalEmulator() { // New buffer for the current std output MainBuffer = new TerminalScreenBuffer(this, ConsoleEx.StdOutput); InputBuffer = new TerminalInputBuffer(this, ConsoleEx.StdInput); // And put our buffers in control CurrentBuffer = MainBuffer; ConsoleEx.ScreenBuffer = MainBuffer; ConsoleEx.InputBuffer = InputBuffer; ConsoleEx.ScreenBuffer.ProcessedOutput = false; ConsoleEx.ScreenBuffer.WrapAtEOL = false; CharacterAttribute Temp = ConsoleEx.ScreenBuffer.Attribute; Temp.Foreground = ConsoleColor.DarkGray; Temp.Background = ConsoleColor.Black; ConsoleEx.ScreenBuffer.Attribute = Temp; Keypad = InputMode.Normal; CursorKeys = InputMode.Normal; }
internal void SwitchToMainBuffer() { MainBuffer.SetCursorPosition(MainBufferCursorLeft + MainBuffer.WindowLeft, MainBuffer.WindowTop + MainBufferCursorTop); ConsoleEx.SwapBuffers(MainBuffer); CurrentBuffer = MainBuffer; }