diff options
Diffstat (limited to 'srcs')
| -rw-r--r-- | srcs/juloo.keyboard2/KeyValue.java | 20 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Keyboard2View.java | 10 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Theme.java | 16 |
3 files changed, 31 insertions, 15 deletions
diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index 989e7fe..e8155f6 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -58,11 +58,12 @@ final class KeyValue public static final int FLAG_SPECIAL = (1 << 22); public static final int FLAG_PRECISE_REPEAT = (1 << 23); // Rendering flags. - public static final int FLAG_KEY_FONT = (1 << 24); - public static final int FLAG_SMALLER_FONT = (1 << 25); + public static final int FLAG_KEY_FONT = (1 << 24); // special font file + public static final int FLAG_SMALLER_FONT = (1 << 25); // 25% smaller symbols + public static final int FLAG_SECONDARY = (1 << 26); // dimmer // Used by [Pointers]. - public static final int FLAG_LOCKED = (1 << 26); - public static final int FLAG_FAKE_PTR = (1 << 27); + public static final int FLAG_LOCKED = (1 << 28); + public static final int FLAG_FAKE_PTR = (1 << 29); // Kinds public static final int KIND_CHAR = (0 << 29); @@ -225,7 +226,7 @@ final class KeyValue if (symbol.length() > 1) flags |= FLAG_SMALLER_FONT; addKey(name, symbol, KIND_MODIFIER, m.ordinal(), - FLAG_LATCH | FLAG_SPECIAL | flags); + FLAG_LATCH | FLAG_SPECIAL | FLAG_SECONDARY | flags); } private static void addModifierKey(String name, int symbol, Modifier m, int flags) @@ -235,12 +236,13 @@ final class KeyValue private static void addDiacritic(String name, int symbol, Modifier m) { - addModifierKey(name, symbol, m, 0); + addKey(name, String.valueOf((char)symbol), KIND_MODIFIER, m.ordinal(), + FLAG_LATCH | FLAG_SPECIAL | FLAG_KEY_FONT); } private static void addEventKey(String name, String symbol, Event e, int flags) { - addKey(name, symbol, KIND_EVENT, e.ordinal(), flags | FLAG_SPECIAL); + addKey(name, symbol, KIND_EVENT, e.ordinal(), flags | FLAG_SPECIAL | FLAG_SECONDARY); } private static void addEventKey(String name, int symbol, Event e, int flags) @@ -250,7 +252,7 @@ final class KeyValue private static void addKeyeventKey(String name, String symbol, int code, int flags) { - addKey(name, symbol, KIND_KEYEVENT, code, flags); + addKey(name, symbol, KIND_KEYEVENT, code, flags | FLAG_SECONDARY); } private static void addKeyeventKey(String name, int symbol, int code, int flags) @@ -336,7 +338,7 @@ final class KeyValue addKeyeventKey("tab", 0x0F, KeyEvent.KEYCODE_TAB, FLAG_SMALLER_FONT); addCharKey("\\t", "\\t", '\t', 0); // Send the tab character - addCharKey("space", "\r", ' ', FLAG_KEY_FONT); + addCharKey("space", "\r", ' ', FLAG_KEY_FONT | FLAG_SECONDARY); addCharKey("nbsp", "\u237d", '\u00a0', FLAG_SMALLER_FONT); addPlaceholderKey("removed"); diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index 949eb0b..2430c3d 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -299,7 +299,7 @@ public class Keyboard2View extends View super.onDetachedFromWindow(); } - private int labelColor(KeyValue k, boolean isKeyDown, int defaultColor) + private int labelColor(KeyValue k, boolean isKeyDown, boolean sublabel) { if (isKeyDown && k.hasFlags(KeyValue.FLAG_LATCH)) { @@ -312,7 +312,9 @@ public class Keyboard2View extends View return _theme.activatedColor; } } - return defaultColor; + if (k.hasFlags(KeyValue.FLAG_SECONDARY)) + return _theme.secondaryLabelColor; + return sublabel ? _theme.subLabelColor : _theme.labelColor; } private void drawLabel(Canvas canvas, KeyboardData.Corner k, float x, float y, float keyH, boolean isKeyDown) @@ -324,7 +326,7 @@ public class Keyboard2View extends View return; float textSize = scaleTextSize(kv, _config.labelTextSize, keyH); Paint p = _theme.labelPaint(kv.hasFlags(KeyValue.FLAG_KEY_FONT)); - p.setColor(labelColor(kv, isKeyDown, _theme.labelColor)); + p.setColor(labelColor(kv, isKeyDown, false)); p.setTextSize(textSize); canvas.drawText(kv.getString(), x, (keyH - p.ascent() - p.descent()) / 2f + y, p); } @@ -340,7 +342,7 @@ public class Keyboard2View extends View return; float textSize = scaleTextSize(kv, _config.sublabelTextSize, keyH); Paint p = _theme.subLabelPaint(kv.hasFlags(KeyValue.FLAG_KEY_FONT), a); - p.setColor(labelColor(kv, isKeyDown, _theme.subLabelColor)); + p.setColor(labelColor(kv, isKeyDown, true)); p.setTextSize(textSize); float subPadding = _config.keyPadding; if (v == Vertical.CENTER) diff --git a/srcs/juloo.keyboard2/Theme.java b/srcs/juloo.keyboard2/Theme.java index 0adc977..21d21fd 100644 --- a/srcs/juloo.keyboard2/Theme.java +++ b/srcs/juloo.keyboard2/Theme.java @@ -3,6 +3,7 @@ package juloo.keyboard2; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; +import android.graphics.Color; import android.graphics.Paint; import android.graphics.Typeface; import android.util.AttributeSet; @@ -15,6 +16,7 @@ public class Theme public final int activatedColor; public final int labelColor; public final int subLabelColor; + public final int secondaryLabelColor; public final float keyBorderRadius; @@ -39,6 +41,8 @@ public class Theme activatedColor = s.getColor(R.styleable.keyboard_colorLabelActivated, 0); lockedColor = s.getColor(R.styleable.keyboard_colorLabelLocked, 0); subLabelColor = s.getColor(R.styleable.keyboard_colorSubLabel, 0); + float secondaryLightOffset = s.getFloat(R.styleable.keyboard_secondaryLightOffset, 1.f); + secondaryLabelColor = adjustLight(labelColor, secondaryLightOffset); keyBorderRadius = s.getDimension(R.styleable.keyboard_keyBorderRadius, 0); s.recycle(); _keyLabelPaint = initLabelPaint(Paint.Align.CENTER, null); @@ -67,7 +71,15 @@ public class Theme return _indicationPaint; } - private Paint initLabelPaint(Paint.Align align, Typeface font) + int adjustLight(int color, float offset) + { + float[] hsv = new float[3]; + Color.colorToHSV(color, hsv); + hsv[2] += offset; + return Color.HSVToColor(hsv); + } + + Paint initLabelPaint(Paint.Align align, Typeface font) { Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setTextAlign(align); @@ -76,7 +88,7 @@ public class Theme return (paint); } - private static Typeface _key_font = null; + static Typeface _key_font = null; static public Typeface getKeyFont(Context context) { |
