Skip to content

Commit

Permalink
[core] Add onDrawCharacter on TextView
Browse files Browse the repository at this point in the history
  • Loading branch information
GabrielBRDeveloper committed Aug 4, 2024
1 parent 2cb1b95 commit b5be9d4
Showing 1 changed file with 25 additions and 27 deletions.
52 changes: 25 additions & 27 deletions core/src/br/nullexcept/mux/widget/TextView.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public class TextView extends View {
private final Paint paint = new Paint();
private ColorStateList textColor = new ColorStateList(Color.RED);
private final Editable text = new Editable();
private final TextLayout layout = new TextLayout(text, paint, new SimpleTextRenderer(paint));
private final TextLayout layout = new TextLayout(text, paint, new SimpleTextRenderer());

public TextView(Context context) {
this(context, null);
Expand Down Expand Up @@ -129,36 +129,34 @@ public void setTypeface(Typeface font) {
setTextSize(paint.getTextSize());
}

public CharSequence getText() {
return text;
protected void onDrawCharacter(Canvas canvas, char ch, int x, int y, int charIndex, int lineStart, int lineEnd) {
canvas.drawText(String.valueOf(ch), x, y, paint);
}
}

class SimpleTextRenderer implements TextLayout.TextRenderer {
private final Paint paint;

SimpleTextRenderer(Paint paint) {
this.paint = paint;
public CharSequence getText() {
return text;
}

@Override
public void drawSelection(Canvas canvas, int x, int y, int width, int height) {}

@Override
public void drawCharacter(Canvas canvas, char ch, int x, int y, int charIndex, int lineStart, int lineEnd) {
switch (ch) {
case '\n':
case '\r':
case ' ':
case '\t':
case '\f':
break;
default:
canvas.drawText(String.valueOf(ch), x, y, paint);
break;
private class SimpleTextRenderer implements TextLayout.TextRenderer {
@Override
public void drawSelection(Canvas canvas, int x, int y, int width, int height) {}

@Override
public void drawCharacter(Canvas canvas, char ch, int x, int y, int charIndex, int lineStart, int lineEnd) {
switch (ch) {
case '\n':
case '\r':
case ' ':
case '\t':
case '\f':
break;
default:
onDrawCharacter(canvas, ch, x, y, charIndex, lineStart, lineEnd);
break;
}
}
}

@Override
public void drawCaret(Canvas canvas, int x, int y) {}
@Override
public void drawCaret(Canvas canvas, int x, int y) {}
}
}

0 comments on commit b5be9d4

Please sign in to comment.