* @param ch character to draw
* @param attr attributes to use (bold, foreColor, backColor)
*/
- public final void putAll(final char ch, final CellAttributes attr) {
+ public final void putAll(final int ch, final CellAttributes attr) {
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
* @param ch character to draw
* @param attr attributes to use (bold, foreColor, backColor)
*/
- public final void putCharXY(final int x, final int y, final char ch,
+ public final void putCharXY(final int x, final int y, final int ch,
final CellAttributes attr) {
if ((x < clipLeft)
* @param y row coordinate. 0 is the top-most row.
* @param ch character to draw
*/
- public final void putCharXY(final int x, final int y, final char ch) {
-
+ public final void putCharXY(final int x, final int y, final int ch) {
if ((x < clipLeft)
|| (x >= clipRight)
|| (y < clipTop)
final CellAttributes attr) {
int i = x;
- for (int j = 0; j < str.length(); j++) {
- char ch = str.charAt(j);
+ for (int j = 0; j < str.length();) {
+ int ch = str.codePointAt(j);
+ j += Character.charCount(ch);
putCharXY(i, y, ch, attr);
- i++;
+ i += StringUtils.width(ch);
if (i == width) {
break;
}
public final void putStringXY(final int x, final int y, final String str) {
int i = x;
- for (int j = 0; j < str.length(); j++) {
- char ch = str.charAt(j);
+ for (int j = 0; j < str.length();) {
+ int ch = str.codePointAt(j);
+ j += Character.charCount(ch);
putCharXY(i, y, ch);
- i++;
+ i += StringUtils.width(ch);
if (i == width) {
break;
}
* @param attr attributes to use (bold, foreColor, backColor)
*/
public final void vLineXY(final int x, final int y, final int n,
- final char ch, final CellAttributes attr) {
+ final int ch, final CellAttributes attr) {
for (int i = y; i < y + n; i++) {
putCharXY(x, i, ch, attr);
* @param attr attributes to use (bold, foreColor, backColor)
*/
public final void hLineXY(final int x, final int y, final int n,
- final char ch, final CellAttributes attr) {
+ final int ch, final CellAttributes attr) {
for (int i = x; i < x + n; i++) {
putCharXY(i, y, ch, attr);
public final void putFullwidthCharXY(final int x, final int y,
final Cell cell) {
- if (lastTextHeight != getTextHeight()) {
- glyphMaker = GlyphMaker.getInstance(getTextHeight());
- lastTextHeight = getTextHeight();
+ int cellWidth = getTextWidth();
+ int cellHeight = getTextHeight();
+
+ if (lastTextHeight != cellHeight) {
+ glyphMaker = GlyphMaker.getInstance(cellHeight);
+ lastTextHeight = cellHeight;
}
- BufferedImage image = glyphMaker.getImage(cell, getTextWidth() * 2,
- getTextHeight());
- BufferedImage leftImage = image.getSubimage(0, 0, getTextWidth(),
- getTextHeight());
- BufferedImage rightImage = image.getSubimage(getTextWidth(), 0,
- getTextWidth(), getTextHeight());
-
- Cell left = new Cell();
- left.setTo(cell);
+ BufferedImage image = glyphMaker.getImage(cell, cellWidth * 2,
+ cellHeight);
+ BufferedImage leftImage = image.getSubimage(0, 0, cellWidth,
+ cellHeight);
+ BufferedImage rightImage = image.getSubimage(cellWidth, 0, cellWidth,
+ cellHeight);
+
+ Cell left = new Cell(cell);
left.setImage(leftImage);
left.setWidth(Cell.Width.LEFT);
// Blank out the char itself, so that shadows do not leave artifacts.
left.setChar(' ');
putCharXY(x, y, left);
- Cell right = new Cell();
- right.setTo(cell);
+ Cell right = new Cell(cell);
right.setImage(rightImage);
right.setWidth(Cell.Width.RIGHT);
// Blank out the char itself, so that shadows do not leave artifacts.
* @param attr attributes to use (bold, foreColor, backColor)
*/
public final void putFullwidthCharXY(final int x, final int y,
- final char ch, final CellAttributes attr) {
+ final int ch, final CellAttributes attr) {
- Cell cell = new Cell(ch);
- cell.setAttr(attr);
+ Cell cell = new Cell(ch, attr);
putFullwidthCharXY(x, y, cell);
}
* @param ch character to draw
*/
public final void putFullwidthCharXY(final int x, final int y,
- final char ch) {
+ final int ch) {
Cell cell = new Cell(ch);
cell.setAttr(getAttrXY(x, y));