*
* The MIT License (MIT)
*
- * Copyright (C) 2017 Kevin Lamonte
+ * Copyright (C) 2019 Kevin Lamonte
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
*/
public CellAttributes getAttrXY(final int x, final int y);
+ /**
+ * Get the cell at one location.
+ *
+ * @param x column coordinate. 0 is the left-most column.
+ * @param y row coordinate. 0 is the top-most row.
+ * @return the character + attributes
+ */
+ public Cell getCharXY(final int x, final int y);
+
/**
* Set the attributes at one location.
*
* @param ch character to draw
* @param attr attributes to use (bold, foreColor, backColor)
*/
- public void putAll(final char ch, final CellAttributes attr);
+ public void putAll(final int ch, final CellAttributes attr);
/**
* Render one character with attributes.
* @param ch character to draw
* @param attr attributes to use (bold, foreColor, backColor)
*/
- public void putCharXY(final int x, final int y, final char ch,
+ public void putCharXY(final int x, final int y, final int ch,
final CellAttributes attr);
/**
* @param y row coordinate. 0 is the top-most row.
* @param ch character to draw
*/
- public void putCharXY(final int x, final int y, final char ch);
+ public void putCharXY(final int x, final int y, final int ch);
/**
* Render a string. Does not wrap if the string exceeds the line.
* @param attr attributes to use (bold, foreColor, backColor)
*/
public void vLineXY(final int x, final int y, final int n,
- final char ch, final CellAttributes attr);
+ final int ch, final CellAttributes attr);
/**
* Draw a horizontal line from (x, y) to (x + n, y).
* @param attr attributes to use (bold, foreColor, backColor)
*/
public void hLineXY(final int x, final int y, final int n,
- final char ch, final CellAttributes attr);
+ final int ch, final CellAttributes attr);
/**
* Change the width. Everything on-screen will be destroyed and must be
public void drawBoxShadow(final int left, final int top,
final int right, final int bottom);
+ /**
+ * Clear the physical screen.
+ */
+ public void clearPhysical();
+
+ /**
+ * Unset every image cell on one row of the physical screen, forcing
+ * images on that row to be redrawn.
+ *
+ * @param y row coordinate. 0 is the top-most row.
+ */
+ public void unsetImageRow(final int y);
+
/**
* Classes must provide an implementation to push the logical screen to
* the physical device.
*/
public void hideCursor();
+ /**
+ * Get the cursor visibility.
+ *
+ * @return true if the cursor is visible
+ */
+ public boolean isCursorVisible();
+
+ /**
+ * Get the cursor X position.
+ *
+ * @return the cursor x column position
+ */
+ public int getCursorX();
+
+ /**
+ * Get the cursor Y position.
+ *
+ * @return the cursor y row position
+ */
+ public int getCursorY();
+
/**
* Set the window title.
*
*/
public void setTitle(final String title);
+ /**
+ * Get the width of a character cell in pixels.
+ *
+ * @return the width in pixels of a character cell
+ */
+ public int getTextWidth();
+
+ /**
+ * Get the height of a character cell in pixels.
+ *
+ * @return the height in pixels of a character cell
+ */
+ public int getTextHeight();
+
}