From 87144fd3a81a32e776beb85cae9046f715949995 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sun, 27 Feb 2022 15:23:36 +0100 Subject: [PATCH] Reduce the text size for some keys The symbols are now smaller for Shift, Space, Backspace, Delete and some keys on the bottom row. The previous rule was to make the text smaller for symbols made of several characters. This is changed to a flag approach. --- srcs/juloo.keyboard2/KeyValue.java | 30 ++++++++++++++----------- srcs/juloo.keyboard2/Keyboard2View.java | 4 ++-- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index 1ef97f2..9a73b83 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -22,7 +22,10 @@ class KeyValue public static final int FLAG_NOREPEAT = (1 << 2); public static final int FLAG_NOCHAR = (1 << 3); public static final int FLAG_PRECISE_REPEAT = (1 << 4); + + // Rendering flags public static final int FLAG_KEY_FONT = (1 << 5); + public static final int FLAG_SMALLER_FONT = (1 << 6); // Internal flags public static final int FLAG_LOCKED = (1 << 8); @@ -151,9 +154,10 @@ class KeyValue static { - addModifierKey("shift", "\uE808", FLAG_LOCK | FLAG_SHIFT | FLAG_KEY_FONT); - addModifierKey("ctrl", "Ctrl", FLAG_CTRL); - addModifierKey("alt", "Alt", FLAG_ALT); + addModifierKey("shift", "\uE808", + FLAG_LOCK | FLAG_SHIFT | FLAG_KEY_FONT | FLAG_SMALLER_FONT); + addModifierKey("ctrl", "Ctrl", FLAG_CTRL | FLAG_SMALLER_FONT); + addModifierKey("alt", "Alt", FLAG_ALT | FLAG_SMALLER_FONT); addModifierKey("accent_aigu", "◌́", FLAG_ACCENT2); addModifierKey("accent_caron", "◌̌", FLAG_ACCENT_CARON); addModifierKey("accent_cedille", "◌̧", FLAG_ACCENT5); @@ -165,8 +169,8 @@ class KeyValue addModifierKey("accent_ring", "◌̊", FLAG_ACCENT_RING); addModifierKey("superscript", "◌͆", FLAG_ACCENT_SUPERSCRIPT); addModifierKey("subscript", "◌̺", FLAG_ACCENT_SUBSCRIPT); - addModifierKey("ordinal", "ºʳᵈ", FLAG_ACCENT_ORDINAL); - addModifierKey("fn", "Fn", FLAG_FN); + addModifierKey("ordinal", "ºʳᵈ", FLAG_ACCENT_ORDINAL | FLAG_SMALLER_FONT); + addModifierKey("fn", "Fn", FLAG_FN | FLAG_SMALLER_FONT); addModifierKey("meta", "◆", FLAG_META); addCharKey('a', KeyEvent.KEYCODE_A); @@ -226,15 +230,15 @@ class KeyValue addCharKey('€', EVENT_NONE, FLAG_LANG_EURO); addCharKey('£', EVENT_NONE, FLAG_LANG_POUND); - addSpecialKey("config", "\uE806", EVENT_CONFIG, FLAG_KEY_FONT); + addSpecialKey("config", "\uE806", EVENT_CONFIG, FLAG_KEY_FONT | FLAG_SMALLER_FONT); addSpecialKey("switch_text", "ABC", EVENT_SWITCH_TEXT); addSpecialKey("switch_numeric", "123+", EVENT_SWITCH_NUMERIC); - addSpecialKey("switch_emoji", "\uE812" , EVENT_SWITCH_EMOJI, FLAG_KEY_FONT); + addSpecialKey("switch_emoji", "\uE812" , EVENT_SWITCH_EMOJI, FLAG_KEY_FONT | FLAG_SMALLER_FONT); addSpecialKey("switch_back_emoji", "ABC", EVENT_SWITCH_BACK_EMOJI); - addSpecialKey("change_method", "\ue807", EVENT_CHANGE_METHOD, FLAG_KEY_FONT); + addSpecialKey("change_method", "\ue807", EVENT_CHANGE_METHOD, FLAG_KEY_FONT | FLAG_SMALLER_FONT); addSpecialKey("action", "Action", EVENT_ACTION); // Will always be replaced - addEventKey("esc", "Esc", KeyEvent.KEYCODE_ESCAPE); + addEventKey("esc", "Esc", KeyEvent.KEYCODE_ESCAPE, FLAG_SMALLER_FONT); addEventKey("enter", "\ue800", KeyEvent.KEYCODE_ENTER, FLAG_KEY_FONT); addEventKey("up", "\uE80B", KeyEvent.KEYCODE_DPAD_UP, FLAG_KEY_FONT | FLAG_PRECISE_REPEAT); addEventKey("right", "\uE80C", KeyEvent.KEYCODE_DPAD_RIGHT, FLAG_KEY_FONT | FLAG_PRECISE_REPEAT); @@ -244,9 +248,9 @@ class KeyValue addEventKey("page_down", "\uE811", KeyEvent.KEYCODE_PAGE_DOWN, FLAG_KEY_FONT); addEventKey("home", "\uE80E", KeyEvent.KEYCODE_MOVE_HOME, FLAG_KEY_FONT); addEventKey("end", "\uE80F", KeyEvent.KEYCODE_MOVE_END, FLAG_KEY_FONT); - addEventKey("backspace", "⌫", KeyEvent.KEYCODE_DEL); - addEventKey("delete", "⌦", KeyEvent.KEYCODE_FORWARD_DEL); - addEventKey("insert", "Ins", KeyEvent.KEYCODE_INSERT); + addEventKey("backspace", "⌫", KeyEvent.KEYCODE_DEL, FLAG_SMALLER_FONT); + addEventKey("delete", "⌦", KeyEvent.KEYCODE_FORWARD_DEL, FLAG_SMALLER_FONT); + addEventKey("insert", "Ins", KeyEvent.KEYCODE_INSERT, FLAG_SMALLER_FONT); addEventKey("f1", "F1", KeyEvent.KEYCODE_F1); addEventKey("f2", "F2", KeyEvent.KEYCODE_F2); addEventKey("f3", "F3", KeyEvent.KEYCODE_F3); @@ -260,6 +264,6 @@ class KeyValue addEventKey("tab", "↹", KeyEvent.KEYCODE_TAB); addKey("\\t", "\\t", '\t', EVENT_NONE, 0); // Send the tab character - addKey("space", "\ue80d", ' ', KeyEvent.KEYCODE_SPACE, FLAG_KEY_FONT); + addKey("space", "\ue80d", ' ', KeyEvent.KEYCODE_SPACE, FLAG_KEY_FONT | FLAG_SMALLER_FONT); } } diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index b77568a..92630ca 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -319,7 +319,7 @@ public class Keyboard2View extends View private float scaleTextSize(KeyValue k, float rel_size, float keyH) { - float smaller_if_long = (k.symbol.length() < 2) ? 1.f : 0.75f; - return keyH * rel_size * smaller_if_long * _config.characterSize; + float smaller_font = ((k.flags & KeyValue.FLAG_SMALLER_FONT) == 0) ? 1.f : 0.75f; + return keyH * rel_size * smaller_font * _config.characterSize; } }