- java.lang.Object
-
- com.googlecode.lanterna.graphics.AbstractTextGraphics
-
- All Implemented Interfaces:
StyleSet<TextGraphics>
,TextGraphics
- Direct Known Subclasses:
DoublePrintingTextGraphics
,ScreenTextGraphics
,SubTextGraphics
,TerminalTextGraphics
,VirtualTerminalTextGraphics
public abstract class AbstractTextGraphics extends java.lang.Object implements TextGraphics
This class hold the default logic for drawing the basic text graphic as exposed by TextGraphic. All implementations rely on a setCharacter method being implemented in subclasses.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.googlecode.lanterna.graphics.StyleSet
StyleSet.Set
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.EnumSet<SGR>
activeModifiers
protected TextColor
backgroundColor
protected TextColor
foregroundColor
private ShapeRenderer
shapeRenderer
protected TabBehaviour
tabBehaviour
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractTextGraphics()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TextGraphics
clearModifiers()
Removes all active modifiersTextGraphics
disableModifiers(SGR... modifiers)
Removes zero or more modifiers from the set of currently active modifiersprivate void
disableModifiers(java.util.Collection<SGR> modifiers)
TextGraphics
drawImage(TerminalPosition topLeft, TextImage image)
Takes a TextImage and draws it on the surface this TextGraphics is targeting, given the coordinates on the target that is specifying where the top-left corner of the image should be drawn.TextGraphics
drawImage(TerminalPosition topLeft, TextImage image, TerminalPosition sourceImageTopLeft, TerminalSize sourceImageSize)
Takes a TextImage and draws it on the surface this TextGraphics is targeting, given the coordinates on the target that is specifying where the top-left corner of the image should be drawn.TextGraphics
drawLine(int fromX, int fromY, int toX, int toY, char character)
Draws a line from a specified position to a specified position, using a supplied character.TextGraphics
drawLine(int fromX, int fromY, int toX, int toY, TextCharacter character)
Draws a line from a specified position to a specified position, using a supplied character.TextGraphics
drawLine(TerminalPosition fromPosition, TerminalPosition toPoint, char character)
Draws a line from a specified position to a specified position, using a supplied character.TextGraphics
drawLine(TerminalPosition fromPoint, TerminalPosition toPoint, TextCharacter character)
Draws a line from a specified position to a specified position, using a supplied TextCharacter.TextGraphics
drawRectangle(TerminalPosition topLeft, TerminalSize size, char character)
Draws the outline of a rectangle with a particular character (and the currently active colors and modifiers).TextGraphics
drawRectangle(TerminalPosition topLeft, TerminalSize size, TextCharacter character)
Draws the outline of a rectangle with a particular TextCharacter, ignoring the current colors and modifiers of this TextGraphics.TextGraphics
drawTriangle(TerminalPosition p1, TerminalPosition p2, TerminalPosition p3, char character)
Draws the outline of a triangle on the screen, using a supplied character.TextGraphics
drawTriangle(TerminalPosition p1, TerminalPosition p2, TerminalPosition p3, TextCharacter character)
Draws the outline of a triangle on the screen, using a supplied character.TextGraphics
enableModifiers(SGR... modifiers)
Adds zero or more modifiers to the set of currently active modifiersprivate void
enableModifiers(java.util.Collection<SGR> modifiers)
TextGraphics
fill(char c)
Fills the entire writable area with a single character, using current foreground color, background color and modifiers.TextGraphics
fillRectangle(TerminalPosition topLeft, TerminalSize size, char character)
Takes a rectangle and fills it with a particular character (and the currently active colors and modifiers).TextGraphics
fillRectangle(TerminalPosition topLeft, TerminalSize size, TextCharacter character)
Takes a rectangle and fills it using a particular TextCharacter, ignoring the current colors and modifiers of this TextGraphics.TextGraphics
fillTriangle(TerminalPosition p1, TerminalPosition p2, TerminalPosition p3, char character)
Draws a filled triangle, using a supplied character.TextGraphics
fillTriangle(TerminalPosition p1, TerminalPosition p2, TerminalPosition p3, TextCharacter character)
Draws a filled triangle, using a supplied character.java.util.EnumSet<SGR>
getActiveModifiers()
Returns all the SGR codes that are currently activeTextColor
getBackgroundColor()
Returns the current background colorTextCharacter
getCharacter(TerminalPosition position)
Returns the character at the specific position in the terminal.TextColor
getForegroundColor()
Returns the current foreground colorprivate int
getOffsetToNextCharacter(char character)
TabBehaviour
getTabBehaviour()
Retrieves the current tab behaviour, which is what the TextGraphics will use when expanding \t characters to spaces.private TextCharacter
newTextCharacter(char character)
TextGraphics
newTextGraphics(TerminalPosition topLeftCorner, TerminalSize size)
Creates a new TextGraphics of the same type as this one, using the same underlying subsystem.private java.lang.String
prepareStringForPut(int column, java.lang.String string)
TextGraphics
putCSIStyledString(int column, int row, java.lang.String string)
Puts a string on the screen at the specified position with the current colors and modifiers.TextGraphics
putCSIStyledString(TerminalPosition position, java.lang.String string)
Puts a string on the screen at the specified position with the current colors and modifiers.TextGraphics
putString(int column, int row, java.lang.String string)
Puts a string on the screen at the specified position with the current colors and modifiers.TextGraphics
putString(int column, int row, java.lang.String string, SGR extraModifier, SGR... optionalExtraModifiers)
Puts a string on the screen at the specified position with the current colors and modifiers.TextGraphics
putString(int column, int row, java.lang.String string, java.util.Collection<SGR> extraModifiers)
Puts a string on the screen at the specified position with the current colors and modifiers.TextGraphics
putString(TerminalPosition position, java.lang.String string)
Shortcut to calling:TextGraphics
putString(TerminalPosition position, java.lang.String string, SGR extraModifier, SGR... optionalExtraModifiers)
Shortcut to calling:TextGraphics
setBackgroundColor(TextColor backgroundColor)
Updates the current background colorTextGraphics
setCharacter(int column, int row, char character)
Sets the character at the current position to the specified valueTextGraphics
setCharacter(TerminalPosition position, char character)
Sets the character at the current position to the specified valueTextGraphics
setCharacter(TerminalPosition position, TextCharacter textCharacter)
Sets the character at the current position to the specified value, without using the current colors and modifiers of this TextGraphics.TextGraphics
setForegroundColor(TextColor foregroundColor)
Updates the current foreground colorTextGraphics
setModifiers(java.util.EnumSet<SGR> modifiers)
Sets the active modifiers to exactly the set passed in to this method.TextGraphics
setStyleFrom(StyleSet<?> source)
copy colors and set of SGR codesTextGraphics
setTabBehaviour(TabBehaviour tabBehaviour)
Sets the behaviour to use when expanding tab characters (\t) to spaces-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.googlecode.lanterna.graphics.TextGraphics
getCharacter, getSize, setCharacter
-
-
-
-
Field Detail
-
foregroundColor
protected TextColor foregroundColor
-
backgroundColor
protected TextColor backgroundColor
-
tabBehaviour
protected TabBehaviour tabBehaviour
-
activeModifiers
protected final java.util.EnumSet<SGR> activeModifiers
-
shapeRenderer
private final ShapeRenderer shapeRenderer
-
-
Method Detail
-
getBackgroundColor
public TextColor getBackgroundColor()
Description copied from interface:StyleSet
Returns the current background color- Specified by:
getBackgroundColor
in interfaceStyleSet<TextGraphics>
- Returns:
- Current background color
-
setBackgroundColor
public TextGraphics setBackgroundColor(TextColor backgroundColor)
Description copied from interface:StyleSet
Updates the current background color- Specified by:
setBackgroundColor
in interfaceStyleSet<TextGraphics>
- Parameters:
backgroundColor
- New background color- Returns:
- Itself
-
getForegroundColor
public TextColor getForegroundColor()
Description copied from interface:StyleSet
Returns the current foreground color- Specified by:
getForegroundColor
in interfaceStyleSet<TextGraphics>
- Returns:
- Current foreground color
-
setForegroundColor
public TextGraphics setForegroundColor(TextColor foregroundColor)
Description copied from interface:StyleSet
Updates the current foreground color- Specified by:
setForegroundColor
in interfaceStyleSet<TextGraphics>
- Parameters:
foregroundColor
- New foreground color- Returns:
- Itself
-
enableModifiers
public TextGraphics enableModifiers(SGR... modifiers)
Description copied from interface:StyleSet
Adds zero or more modifiers to the set of currently active modifiers- Specified by:
enableModifiers
in interfaceStyleSet<TextGraphics>
- Parameters:
modifiers
- Modifiers to add to the set of currently active modifiers- Returns:
- Itself
-
enableModifiers
private void enableModifiers(java.util.Collection<SGR> modifiers)
-
disableModifiers
public TextGraphics disableModifiers(SGR... modifiers)
Description copied from interface:StyleSet
Removes zero or more modifiers from the set of currently active modifiers- Specified by:
disableModifiers
in interfaceStyleSet<TextGraphics>
- Parameters:
modifiers
- Modifiers to remove from the set of currently active modifiers- Returns:
- Itself
-
disableModifiers
private void disableModifiers(java.util.Collection<SGR> modifiers)
-
setModifiers
public TextGraphics setModifiers(java.util.EnumSet<SGR> modifiers)
Description copied from interface:StyleSet
Sets the active modifiers to exactly the set passed in to this method. Any previous state of which modifiers are enabled doesn't matter.- Specified by:
setModifiers
in interfaceStyleSet<TextGraphics>
- Parameters:
modifiers
- Modifiers to set as active- Returns:
- Itself
-
clearModifiers
public TextGraphics clearModifiers()
Description copied from interface:StyleSet
Removes all active modifiers- Specified by:
clearModifiers
in interfaceStyleSet<TextGraphics>
- Returns:
- Itself
-
getActiveModifiers
public java.util.EnumSet<SGR> getActiveModifiers()
Description copied from interface:StyleSet
Returns all the SGR codes that are currently active- Specified by:
getActiveModifiers
in interfaceStyleSet<TextGraphics>
- Returns:
- Currently active SGR modifiers
-
getTabBehaviour
public TabBehaviour getTabBehaviour()
Description copied from interface:TextGraphics
Retrieves the current tab behaviour, which is what the TextGraphics will use when expanding \t characters to spaces.- Specified by:
getTabBehaviour
in interfaceTextGraphics
- Returns:
- Current behaviour in use for expanding tab to spaces
-
setTabBehaviour
public TextGraphics setTabBehaviour(TabBehaviour tabBehaviour)
Description copied from interface:TextGraphics
Sets the behaviour to use when expanding tab characters (\t) to spaces- Specified by:
setTabBehaviour
in interfaceTextGraphics
- Parameters:
tabBehaviour
- Behaviour to use when expanding tabs to spaces- Returns:
- Itself
-
fill
public TextGraphics fill(char c)
Description copied from interface:TextGraphics
Fills the entire writable area with a single character, using current foreground color, background color and modifiers.- Specified by:
fill
in interfaceTextGraphics
- Parameters:
c
- Character to fill the writable area with- Returns:
- Itself
-
setCharacter
public TextGraphics setCharacter(int column, int row, char character)
Description copied from interface:TextGraphics
Sets the character at the current position to the specified value- Specified by:
setCharacter
in interfaceTextGraphics
- Parameters:
column
- column of the location to set the characterrow
- row of the location to set the charactercharacter
- Character to set at the current position- Returns:
- Itself
-
setCharacter
public TextGraphics setCharacter(TerminalPosition position, TextCharacter textCharacter)
Description copied from interface:TextGraphics
Sets the character at the current position to the specified value, without using the current colors and modifiers of this TextGraphics.- Specified by:
setCharacter
in interfaceTextGraphics
- Parameters:
position
- position of the location to set the charactertextCharacter
- Character data to set at the current position- Returns:
- Itself
-
setCharacter
public TextGraphics setCharacter(TerminalPosition position, char character)
Description copied from interface:TextGraphics
Sets the character at the current position to the specified value- Specified by:
setCharacter
in interfaceTextGraphics
- Parameters:
position
- position of the location to set the charactercharacter
- Character to set at the current position- Returns:
- Itself
-
drawLine
public TextGraphics drawLine(TerminalPosition fromPosition, TerminalPosition toPoint, char character)
Description copied from interface:TextGraphics
Draws a line from a specified position to a specified position, using a supplied character. The current foreground color, background color and modifiers will be applied.- Specified by:
drawLine
in interfaceTextGraphics
- Parameters:
fromPosition
- From where to draw the linetoPoint
- Where to draw the linecharacter
- Character to use for the line- Returns:
- Itself
-
drawLine
public TextGraphics drawLine(TerminalPosition fromPoint, TerminalPosition toPoint, TextCharacter character)
Description copied from interface:TextGraphics
Draws a line from a specified position to a specified position, using a supplied TextCharacter. The current foreground color, background color and modifiers of this TextGraphics will not be used and will not be modified by this call.- Specified by:
drawLine
in interfaceTextGraphics
- Parameters:
fromPoint
- From where to draw the linetoPoint
- Where to draw the linecharacter
- Character data to use for the line, including character, colors and modifiers- Returns:
- Itself
-
drawLine
public TextGraphics drawLine(int fromX, int fromY, int toX, int toY, char character)
Description copied from interface:TextGraphics
Draws a line from a specified position to a specified position, using a supplied character. The current foreground color, background color and modifiers will be applied.- Specified by:
drawLine
in interfaceTextGraphics
- Parameters:
fromX
- Column of the starting position to draw the line from (inclusive)fromY
- Row of the starting position to draw the line from (inclusive)toX
- Column of the end position to draw the line to (inclusive)toY
- Row of the end position to draw the line to (inclusive)character
- Character to use for the line- Returns:
- Itself
-
drawLine
public TextGraphics drawLine(int fromX, int fromY, int toX, int toY, TextCharacter character)
Description copied from interface:TextGraphics
Draws a line from a specified position to a specified position, using a supplied character. The current foreground color, background color and modifiers of this TextGraphics will not be used and will not be modified by this call.- Specified by:
drawLine
in interfaceTextGraphics
- Parameters:
fromX
- Column of the starting position to draw the line from (inclusive)fromY
- Row of the starting position to draw the line from (inclusive)toX
- Column of the end position to draw the line to (inclusive)toY
- Row of the end position to draw the line to (inclusive)character
- Character data to use for the line, including character, colors and modifiers- Returns:
- Itself
-
drawTriangle
public TextGraphics drawTriangle(TerminalPosition p1, TerminalPosition p2, TerminalPosition p3, char character)
Description copied from interface:TextGraphics
Draws the outline of a triangle on the screen, using a supplied character. The triangle will begin at p1, go through p2 and then p3 and then back to p1. The current foreground color, background color and modifiers will be applied.- Specified by:
drawTriangle
in interfaceTextGraphics
- Parameters:
p1
- First point on the screen of the trianglep2
- Second point on the screen of the trianglep3
- Third point on the screen of the trianglecharacter
- What character to use when drawing the lines of the triangle- Returns:
- Itself
-
drawTriangle
public TextGraphics drawTriangle(TerminalPosition p1, TerminalPosition p2, TerminalPosition p3, TextCharacter character)
Description copied from interface:TextGraphics
Draws the outline of a triangle on the screen, using a supplied character. The triangle will begin at p1, go through p2 and then p3 and then back to p1. The current foreground color, background color and modifiers of this TextGraphics will not be used and will not be modified by this call.- Specified by:
drawTriangle
in interfaceTextGraphics
- Parameters:
p1
- First point on the screen of the trianglep2
- Second point on the screen of the trianglep3
- Third point on the screen of the trianglecharacter
- What character data to use when drawing the lines of the triangle- Returns:
- Itself
-
fillTriangle
public TextGraphics fillTriangle(TerminalPosition p1, TerminalPosition p2, TerminalPosition p3, char character)
Description copied from interface:TextGraphics
Draws a filled triangle, using a supplied character. The triangle will begin at p1, go through p2 and then p3 and then back to p1. The current foreground color, background color and modifiers will be applied.- Specified by:
fillTriangle
in interfaceTextGraphics
- Parameters:
p1
- First point on the screen of the trianglep2
- Second point on the screen of the trianglep3
- Third point on the screen of the trianglecharacter
- What character to use when drawing the triangle- Returns:
- Itself
-
fillTriangle
public TextGraphics fillTriangle(TerminalPosition p1, TerminalPosition p2, TerminalPosition p3, TextCharacter character)
Description copied from interface:TextGraphics
Draws a filled triangle, using a supplied character. The triangle will begin at p1, go through p2 and then p3 and then back to p1. The current foreground color, background color and modifiers of this TextGraphics will not be used and will not be modified by this call.- Specified by:
fillTriangle
in interfaceTextGraphics
- Parameters:
p1
- First point on the screen of the trianglep2
- Second point on the screen of the trianglep3
- Third point on the screen of the trianglecharacter
- What character data to use when drawing the triangle- Returns:
- Itself
-
drawRectangle
public TextGraphics drawRectangle(TerminalPosition topLeft, TerminalSize size, char character)
Description copied from interface:TextGraphics
Draws the outline of a rectangle with a particular character (and the currently active colors and modifiers). The topLeft coordinate is inclusive.For example, calling drawRectangle with size being the size of the terminal and top-left value being the terminal's top-left (0x0) corner will draw a border around the terminal.
The current foreground color, background color and modifiers will be applied.
- Specified by:
drawRectangle
in interfaceTextGraphics
- Parameters:
topLeft
- Coordinates of the top-left position of the rectanglesize
- Size (in columns and rows) of the area to drawcharacter
- What character to use when drawing the outline of the rectangle- Returns:
- Itself
-
drawRectangle
public TextGraphics drawRectangle(TerminalPosition topLeft, TerminalSize size, TextCharacter character)
Description copied from interface:TextGraphics
Draws the outline of a rectangle with a particular TextCharacter, ignoring the current colors and modifiers of this TextGraphics.For example, calling drawRectangle with size being the size of the terminal and top-left value being the terminal's top-left (0x0) corner will draw a border around the terminal.
The current foreground color, background color and modifiers will not be modified by this call.
- Specified by:
drawRectangle
in interfaceTextGraphics
- Parameters:
topLeft
- Coordinates of the top-left position of the rectanglesize
- Size (in columns and rows) of the area to drawcharacter
- What character data to use when drawing the outline of the rectangle- Returns:
- Itself
-
fillRectangle
public TextGraphics fillRectangle(TerminalPosition topLeft, TerminalSize size, char character)
Description copied from interface:TextGraphics
Takes a rectangle and fills it with a particular character (and the currently active colors and modifiers). The topLeft coordinate is inclusive.For example, calling fillRectangle with size being the size of the terminal and top-left value being the terminal's top-left (0x0) corner will fill the entire terminal with this character.
The current foreground color, background color and modifiers will be applied.
- Specified by:
fillRectangle
in interfaceTextGraphics
- Parameters:
topLeft
- Coordinates of the top-left position of the rectanglesize
- Size (in columns and rows) of the area to drawcharacter
- What character to use when filling the rectangle- Returns:
- Itself
-
fillRectangle
public TextGraphics fillRectangle(TerminalPosition topLeft, TerminalSize size, TextCharacter character)
Description copied from interface:TextGraphics
Takes a rectangle and fills it using a particular TextCharacter, ignoring the current colors and modifiers of this TextGraphics. The topLeft coordinate is inclusive.For example, calling fillRectangle with size being the size of the terminal and top-left value being the terminal's top-left (0x0) corner will fill the entire terminal with this character.
The current foreground color, background color and modifiers will not be modified by this call.
- Specified by:
fillRectangle
in interfaceTextGraphics
- Parameters:
topLeft
- Coordinates of the top-left position of the rectanglesize
- Size (in columns and rows) of the area to drawcharacter
- What character data to use when filling the rectangle- Returns:
- Itself
-
drawImage
public TextGraphics drawImage(TerminalPosition topLeft, TextImage image)
Description copied from interface:TextGraphics
Takes a TextImage and draws it on the surface this TextGraphics is targeting, given the coordinates on the target that is specifying where the top-left corner of the image should be drawn. This is equivalent of callingdrawImage(topLeft, image, TerminalPosition.TOP_LEFT_CORNER, image.getSize()
.- Specified by:
drawImage
in interfaceTextGraphics
- Parameters:
topLeft
- Position of the top-left corner of the image on the targetimage
- Image to draw- Returns:
- Itself
-
drawImage
public TextGraphics drawImage(TerminalPosition topLeft, TextImage image, TerminalPosition sourceImageTopLeft, TerminalSize sourceImageSize)
Description copied from interface:TextGraphics
Takes a TextImage and draws it on the surface this TextGraphics is targeting, given the coordinates on the target that is specifying where the top-left corner of the image should be drawn. This overload will only draw a portion of the image to the target, as specified by the two last parameters.- Specified by:
drawImage
in interfaceTextGraphics
- Parameters:
topLeft
- Position of the top-left corner of the image on the targetimage
- Image to drawsourceImageTopLeft
- Position of the top-left corner in the source image to draw at the topLeft position on the targetsourceImageSize
- How much of the source image to draw on the target, counted from the sourceImageTopLeft position- Returns:
- Itself
-
putString
public TextGraphics putString(int column, int row, java.lang.String string)
Description copied from interface:TextGraphics
Puts a string on the screen at the specified position with the current colors and modifiers. If the string contains newlines (\r and/or \n), the method will stop at the character before that; you have to manage multi-line strings yourself! The current foreground color, background color and modifiers will be applied.- Specified by:
putString
in interfaceTextGraphics
- Parameters:
column
- What column to put the string atrow
- What row to put the string atstring
- String to put on the screen- Returns:
- Itself
-
putString
public TextGraphics putString(TerminalPosition position, java.lang.String string)
Description copied from interface:TextGraphics
Shortcut to calling:putString(position.getColumn(), position.getRow(), string);
- Specified by:
putString
in interfaceTextGraphics
- Parameters:
position
- Position to put the string atstring
- String to put on the screen- Returns:
- Itself
-
putString
public TextGraphics putString(int column, int row, java.lang.String string, SGR extraModifier, SGR... optionalExtraModifiers)
Description copied from interface:TextGraphics
Puts a string on the screen at the specified position with the current colors and modifiers. If the string contains newlines (\r and/or \n), the method will stop at the character before that; you have to manage multi-line strings yourself! If you supplied any extra modifiers, they will be applied when writing the string as well but not recorded into the state of the TextGraphics object.- Specified by:
putString
in interfaceTextGraphics
- Parameters:
column
- What column to put the string atrow
- What row to put the string atstring
- String to put on the screenextraModifier
- Modifier to apply to the stringoptionalExtraModifiers
- Optional extra modifiers to apply to the string- Returns:
- Itself
-
putString
public TextGraphics putString(int column, int row, java.lang.String string, java.util.Collection<SGR> extraModifiers)
Description copied from interface:TextGraphics
Puts a string on the screen at the specified position with the current colors and modifiers. If the string contains newlines (\r and/or \n), the method will stop at the character before that; you have to manage multi-line strings yourself! If you supplied any extra modifiers, they will be applied when writing the string as well but not recorded into the state of the TextGraphics object.- Specified by:
putString
in interfaceTextGraphics
- Parameters:
column
- What column to put the string atrow
- What row to put the string atstring
- String to put on the screenextraModifiers
- Modifier to apply to the string- Returns:
- Itself
-
putString
public TextGraphics putString(TerminalPosition position, java.lang.String string, SGR extraModifier, SGR... optionalExtraModifiers)
Description copied from interface:TextGraphics
Shortcut to calling:putString(position.getColumn(), position.getRow(), string, modifiers, optionalExtraModifiers);
- Specified by:
putString
in interfaceTextGraphics
- Parameters:
position
- Position to put the string atstring
- String to put on the screenextraModifier
- Modifier to apply to the stringoptionalExtraModifiers
- Optional extra modifiers to apply to the string- Returns:
- Itself
-
putCSIStyledString
public TextGraphics putCSIStyledString(int column, int row, java.lang.String string)
Description copied from interface:TextGraphics
Puts a string on the screen at the specified position with the current colors and modifiers. If the string contains newlines (\r and/or \n), the method will stop at the character before that; you have to manage multi-line strings yourself!This method has an additional functionality to the regular
TextGraphics.putString(int, int, String)
; if you embed ANSI CSI-style control sequences (like modifying text color or controlling SGR status), they will be interpreted as the string is printed and mutates theTextGraphics
object. In this version of Lanterna, the following sequences are supported:- Set foreground color
- Set background color
- Set/Clear bold style
- Set/Clear underline style
- Set/Clear blink style
- Set/Clear reverse style
- Clear all styles and colors (notice that this will return the state to what it was at the start of the method)
TextGraphics
object will return to the color/style state it was in at the start of the call.- Specified by:
putCSIStyledString
in interfaceTextGraphics
- Parameters:
column
- What column to put the string atrow
- What row to put the string atstring
- String to put on the screen- Returns:
- Itself
-
putCSIStyledString
public TextGraphics putCSIStyledString(TerminalPosition position, java.lang.String string)
Description copied from interface:TextGraphics
Puts a string on the screen at the specified position with the current colors and modifiers. If the string contains newlines (\r and/or \n), the method will stop at the character before that; you have to manage multi-line strings yourself!This method has an additional functionality to the regular
TextGraphics.putString(int, int, String)
; if you embed ANSI CSI-style control sequences (like modifying text color or controlling SGR status), they will be interpreted as the string is printed and mutates theTextGraphics
object. In this version of Lanterna, the following sequences are supported:- Set foreground color
- Set background color
- Set/Clear bold style
- Set/Clear underline style
- Set/Clear blink style
- Set/Clear reverse style
- Clear all styles and colors (notice that this will return the state to what it was at the start of the method)
TextGraphics
object will return to the color/style state it was in at the start of the call.- Specified by:
putCSIStyledString
in interfaceTextGraphics
- Parameters:
position
- Position to put the string atstring
- String to put on the screen- Returns:
- Itself
-
getCharacter
public TextCharacter getCharacter(TerminalPosition position)
Description copied from interface:TextGraphics
Returns the character at the specific position in the terminal. May returnnull
if the TextGraphics implementation doesn't support it or doesn't know what the character is.- Specified by:
getCharacter
in interfaceTextGraphics
- Parameters:
position
- Position to return the character for- Returns:
- The text character at the specified position or
null
if not available
-
newTextGraphics
public TextGraphics newTextGraphics(TerminalPosition topLeftCorner, TerminalSize size) throws java.lang.IllegalArgumentException
Description copied from interface:TextGraphics
Creates a new TextGraphics of the same type as this one, using the same underlying subsystem. Using this method, you need to specify a section of the current TextGraphics valid area that this new TextGraphic shall be restricted to. If you callnewTextGraphics(TerminalPosition.TOP_LEFT_CORNER, textGraphics.getSize())
then the resulting object will be identical to this one, but having a separated state for colors, position and modifiers.- Specified by:
newTextGraphics
in interfaceTextGraphics
- Parameters:
topLeftCorner
- Position of this TextGraphics's writable area that is to become the top-left corner (0x0) of the new TextGraphicssize
- How large area, counted from the topLeftCorner, the new TextGraphics can write to. This cannot be larger than the current TextGraphics's writable area (adjusted by topLeftCorner)- Returns:
- A new TextGraphics with the same underlying subsystem, that can write to only the specified area
- Throws:
java.lang.IllegalArgumentException
- If the size the of new TextGraphics exceeds the dimensions of this TextGraphics in any way.
-
newTextCharacter
private TextCharacter newTextCharacter(char character)
-
prepareStringForPut
private java.lang.String prepareStringForPut(int column, java.lang.String string)
-
getOffsetToNextCharacter
private int getOffsetToNextCharacter(char character)
-
setStyleFrom
public TextGraphics setStyleFrom(StyleSet<?> source)
Description copied from interface:StyleSet
copy colors and set of SGR codes- Specified by:
setStyleFrom
in interfaceStyleSet<TextGraphics>
- Parameters:
source
- Modifiers to set as active- Returns:
- Itself
-
-