forked from extern/Unexpected-Keyboard
Draw anticircle labels
They are drawn the same way as indication.
This commit is contained in:
parent
04caf4309a
commit
0fadb4b9e6
@ -322,10 +322,7 @@ public class Keyboard2View extends View
|
|||||||
if (k.keys[i] != null)
|
if (k.keys[i] != null)
|
||||||
drawSubLabel(canvas, k.keys[i], x, y, keyW, keyH, i, isKeyDown);
|
drawSubLabel(canvas, k.keys[i], x, y, keyW, keyH, i, isKeyDown);
|
||||||
}
|
}
|
||||||
if (k.indication != null)
|
drawIndication(canvas, k, x, y, keyW, keyH);
|
||||||
{
|
|
||||||
drawIndication(canvas, k.indication, keyW / 2f + x, y, keyH);
|
|
||||||
}
|
|
||||||
x += _keyWidth * k.width;
|
x += _keyWidth * k.width;
|
||||||
}
|
}
|
||||||
y += row.height * _config.keyHeight;
|
y += row.height * _config.keyHeight;
|
||||||
@ -443,15 +440,33 @@ public class Keyboard2View extends View
|
|||||||
canvas.drawText(label, 0, label_len, x, y, p);
|
canvas.drawText(label, 0, label_len, x, y, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawIndication(Canvas canvas, String indication, float x,
|
private void drawIndication(Canvas canvas, KeyboardData.Key k, float x,
|
||||||
float y, float keyH)
|
float y, float keyW, float keyH)
|
||||||
{
|
{
|
||||||
float textSize = keyH * _config.sublabelTextSize * _config.characterSize;
|
boolean special_font = false;
|
||||||
Paint p = _theme.indicationPaint();
|
String indic;
|
||||||
|
float text_size;
|
||||||
|
if (k.indication != null)
|
||||||
|
{
|
||||||
|
indic = k.indication;
|
||||||
|
text_size = keyH * _config.sublabelTextSize * _config.characterSize;
|
||||||
|
}
|
||||||
|
else if (k.anticircle != null)
|
||||||
|
{
|
||||||
|
indic = k.anticircle.getString();
|
||||||
|
special_font = k.anticircle.hasFlagsAny(KeyValue.FLAG_KEY_FONT);
|
||||||
|
text_size = scaleTextSize(k.anticircle, _config.sublabelTextSize, keyH);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Paint p = _theme.indicationPaint(special_font);
|
||||||
p.setColor(_theme.subLabelColor);
|
p.setColor(_theme.subLabelColor);
|
||||||
p.setTextSize(textSize);
|
p.setTextSize(text_size);
|
||||||
canvas.drawText(indication, x,
|
// Limit indication length to 3 characters
|
||||||
(keyH - p.ascent() - p.descent()) * 4/5 + y, p);
|
canvas.drawText(indic, 0, Math.min(indic.length(), 3),
|
||||||
|
x + keyW / 2f, (keyH - p.ascent() - p.descent()) * 4/5 + y, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
private float scaleTextSize(KeyValue k, float rel_size, float keyH)
|
private float scaleTextSize(KeyValue k, float rel_size, float keyH)
|
||||||
|
@ -35,6 +35,7 @@ public class Theme
|
|||||||
private final Paint _keySubLabelPaint;
|
private final Paint _keySubLabelPaint;
|
||||||
private final Paint _specialKeySubLabelPaint;
|
private final Paint _specialKeySubLabelPaint;
|
||||||
private final Paint _indicationPaint;
|
private final Paint _indicationPaint;
|
||||||
|
private final Paint _specialIndicationPaint;
|
||||||
|
|
||||||
public Theme(Context context, AttributeSet attrs)
|
public Theme(Context context, AttributeSet attrs)
|
||||||
{
|
{
|
||||||
@ -68,6 +69,7 @@ public class Theme
|
|||||||
_specialKeyLabelPaint = initLabelPaint(Paint.Align.CENTER, specialKeyFont);
|
_specialKeyLabelPaint = initLabelPaint(Paint.Align.CENTER, specialKeyFont);
|
||||||
_specialKeySubLabelPaint = initLabelPaint(Paint.Align.LEFT, specialKeyFont);
|
_specialKeySubLabelPaint = initLabelPaint(Paint.Align.LEFT, specialKeyFont);
|
||||||
_indicationPaint = initLabelPaint(Paint.Align.CENTER, null);
|
_indicationPaint = initLabelPaint(Paint.Align.CENTER, null);
|
||||||
|
_specialIndicationPaint = initLabelPaint(Paint.Align.CENTER, specialKeyFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Paint labelPaint(boolean special_font)
|
public Paint labelPaint(boolean special_font)
|
||||||
@ -83,9 +85,9 @@ public class Theme
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Paint indicationPaint()
|
public Paint indicationPaint(boolean special_font)
|
||||||
{
|
{
|
||||||
return _indicationPaint;
|
return special_font ? _specialIndicationPaint : _indicationPaint;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Interpolate the 'value' component toward its opposite by 'alpha'. */
|
/** Interpolate the 'value' component toward its opposite by 'alpha'. */
|
||||||
|
Loading…
Reference in New Issue
Block a user