Package net.rubygrapefruit.platform

# Interface Terminal

All Known Implementing Classes:
  `AbstractTerminal`, `AnsiTerminal`, `TerminfoTerminal`, `WindowsTerminal`, `WrapperTerminal`

public interface Terminal
Allows the terminal/console to be manipulated.

On UNIX based platforms, this provides access to the terminal. On Windows platforms, this provides access to the console.

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static enum`
`Terminal.Color`
Basic colors supported by a terminal.

## Method Summary

Modifier and Type
Method
Description
`Terminal`
`bold()`
Switches the terminal to bold mode, if supported.
`Terminal`
`clearToEndOfLine()`
Clears characters from the cursor position to the end of the current line.
`Terminal`
`cursorDown(int count)`
Moves the cursor the given number of characters down.
`Terminal`
`cursorLeft(int count)`
Moves the cursor the given number of characters to the left.
`Terminal`
`cursorRight(int count)`
Moves the cursor the given number of characters to the right.
`Terminal`
`cursorStartOfLine()`
Moves the cursor to the start of the current line.
`Terminal`
`cursorUp(int count)`
Moves the cursor the given number of characters up.
`Terminal`
`foreground(Terminal.Color color)`
Sets the terminal foreground color, if supported.
`TerminalSize`
`getTerminalSize()`
Returns the size of the terminal.
`Terminal`
`normal()`
Switches the terminal to normal mode.
`Terminal`
`reset()`
Switches the terminal to normal mode and restores default colors.
`boolean`
`supportsColor()`
Returns true if this terminal supports setting output colors.
`boolean`
`supportsCursorMotion()`
Returns true if this terminal supports moving the cursor.
`boolean`
`supportsTextAttributes()`
Returns true if this terminal supports setting text attributes, such as bold.

## Method Details

### supportsTextAttributes

boolean supportsTextAttributes()
Returns true if this terminal supports setting text attributes, such as bold.

### supportsColor

boolean supportsColor()
Returns true if this terminal supports setting output colors.

### supportsCursorMotion

boolean supportsCursorMotion()
Returns true if this terminal supports moving the cursor.

### getTerminalSize

TerminalSize getTerminalSize() throws NativeException
Returns the size of the terminal. Supported by all terminals.

Returns:
  The current terminal size. Never returns null.
Throws:
  `NativeException` - On failure.

### foreground

Terminal foreground(Terminal.Color color) throws NativeException
Sets the terminal foreground color, if supported. Does nothing if this terminal does not support setting the foreground color.

Throws:
  `NativeException` - On failure.

### bold

Terminal bold() throws NativeException
Switches the terminal to bold mode, if supported. Does nothing if this terminal does not support bold mode.

Throws:
  `NativeException` - On failure.

### normal

Terminal normal() throws NativeException
Switches the terminal to normal mode. Supported by all terminals.

Throws:
  `NativeException` - On failure.

### reset

Terminal reset() throws NativeException
Switches the terminal to normal mode and restores default colors. Supported by all terminals.

Throws:
  `NativeException` - On failure.

### cursorLeft

Terminal cursorLeft(int count) throws NativeException
Moves the cursor the given number of characters to the left.

Throws:
  `NativeException` - On failure, or if this terminal does not support cursor motion.

### cursorRight

Terminal cursorRight(int count) throws NativeException
Moves the cursor the given number of characters to the right.

Throws:
  `NativeException` - On failure, or if this terminal does not support cursor motion.

### cursorUp

Terminal cursorUp(int count) throws NativeException
Moves the cursor the given number of characters up.

Throws:
  `NativeException` - On failure, or if this terminal does not support cursor motion.

### cursorDown

Terminal cursorDown(int count) throws NativeException
Moves the cursor the given number of characters down.

Throws:
  `NativeException` - On failure, or if this terminal does not support cursor motion.

### cursorStartOfLine

Terminal cursorStartOfLine() throws NativeException
Moves the cursor to the start of the current line.

Throws:
  `NativeException` - On failure, or if this terminal does not support cursor motion.

### clearToEndOfLine

Terminal clearToEndOfLine() throws NativeException
Clears characters from the cursor position to the end of the current line.

Throws:
  `NativeException` - On failure, or if this terminal does not support clearing.