@Override protected void processRestoreCursorPosition() throws IOException { // restore only if there was a save operation first if (savedX != -1 && savedY != -1) { out.flush(); // expected diff with WindowsAnsiPrintStream.java info.cursorPosition.x = savedX; info.cursorPosition.y = savedY; applyCursorPosition(); } }
@Override protected void processCursorUp(int count) throws IOException { getConsoleInfo(); info.cursorPosition.y = (short) Math.max(info.window.top, info.cursorPosition.y - count); applyCursorPosition(); }
@Override protected void processCursorDown(int count) throws IOException { getConsoleInfo(); info.cursorPosition.y = (short) Math.min(Math.max(0, info.size.y - 1), info.cursorPosition.y + count); applyCursorPosition(); }
@Override protected void processCursorLeft(int count) throws IOException { getConsoleInfo(); info.cursorPosition.x = (short) Math.max(0, info.cursorPosition.x - count); applyCursorPosition(); }
@Override protected void processCursorTo(int row, int col) throws IOException { getConsoleInfo(); info.cursorPosition.y = (short) Math.max(info.window.top, Math.min(info.size.y, info.window.top + row - 1)); info.cursorPosition.x = (short) Math.max(0, Math.min(info.window.width(), col - 1)); applyCursorPosition(); }
@Override protected void processCursorToColumn(int x) throws IOException { getConsoleInfo(); info.cursorPosition.x = (short) Math.max(0, Math.min(info.window.width(), x - 1)); applyCursorPosition(); }
@Override protected void processCursorRight(int count) throws IOException { getConsoleInfo(); info.cursorPosition.x = (short) Math.min(info.window.width(), info.cursorPosition.x + count); applyCursorPosition(); }