abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/KeyModifier.java
diff options
context:
space:
mode:
authorJules Aguillon2024-09-10 22:43:40 +0200
committerJules Aguillon2024-09-10 22:43:40 +0200
commitb600332595cdf7cf36e48e2bf185ef4d96ae146e (patch)
treeedc6752ce52daa81eaaa8993fd556990c8ebbbdb /srcs/juloo.keyboard2/KeyModifier.java
parente734d1d0e240e19c978c5ce26d171277fe3cb85a (diff)
downloadunexpected-keyboard-b600332595cdf7cf36e48e2bf185ef4d96ae146e.tar.gz
unexpected-keyboard-b600332595cdf7cf36e48e2bf185ef4d96ae146e.zip
Define the Fn modifier using the compose mechanism
This removes 100Kb from the app.
Diffstat (limited to 'srcs/juloo.keyboard2/KeyModifier.java')
-rw-r--r--srcs/juloo.keyboard2/KeyModifier.java191
1 files changed, 3 insertions, 188 deletions
diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java
index 5763e99..d8ea965 100644
--- a/srcs/juloo.keyboard2/KeyModifier.java
+++ b/srcs/juloo.keyboard2/KeyModifier.java
@@ -204,7 +204,9 @@ public final class KeyModifier
String name = null;
switch (k.getKind())
{
- case Char: name = apply_fn_char(k.getChar()); break;
+ case Char:
+ KeyValue r = ComposeKey.apply(ComposeKeyData.fn, k.getChar());
+ return (r != null) ? r : k;
case Keyevent: name = apply_fn_keyevent(k.getKeyevent()); break;
case Event: name = apply_fn_event(k.getEvent()); break;
case Placeholder: name = apply_fn_placeholder(k.getPlaceholder()); break;
@@ -264,193 +266,6 @@ public final class KeyModifier
}
}
- /** Return the name of modified key, or [null]. */
- private static String apply_fn_char(char c)
- {
- switch (c)
- {
- case '1': return "f1";
- case '2': return "f2";
- case '3': return "f3";
- case '4': return "f4";
- case '5': return "f5";
- case '6': return "f6";
- case '7': return "f7";
- case '8': return "f8";
- case '9': return "f9";
- case '0': return "f10";
- case '<': return "«";
- case '>': return "»";
- case '{': return "‹";
- case '}': return "›";
- case '[': return "‘";
- case ']': return "’";
- case '(': return "“";
- case ')': return "”";
- case '\'': return "‚";
- case '"': return "„";
- case '-': return "–";
- case '_': return "—";
- case '^': return "¬";
- case '%': return "‰";
- case '=': return "≈";
- case 'u': return "µ";
- case 'a': return "æ";
- case 'o': return "œ";
- case '*': return "°";
- case '.': return "…";
- case ',': return "·";
- case '!': return "¡";
- case '?': return "¿";
- case '|': return "¦";
- case '§': return "¶";
- case '†': return "‡";
- case '×': return "∙";
- case ' ': return "nbsp";
- // arrows
- case '↖': return "⇖";
- case '↑': return "⇑";
- case '↗': return "⇗";
- case '←': return "⇐";
- case '→': return "⇒";
- case '↙': return "⇙";
- case '↓': return "⇓";
- case '↘': return "⇘";
- case '↔': return "⇔";
- case '↕': return "⇕";
- // Currency symbols
- case 'e': return "€";
- case 'l': return "£";
- case 'r': return "₹";
- case 'y': return "¥";
- case 'c': return "¢";
- case 'p': return "₽";
- case 'b': return "₱";
- case 'h': return "₴";
- case 'z': return "₿";
- case '€': case '£': return "removed"; // Avoid showing these twice
- // alternating greek letters
- case 'π': return "ϖ";
- case 'θ': return "ϑ";
- case 'Θ': return "ϴ";
- case 'ε': return "ϵ";
- case 'β': return "ϐ";
- case 'ρ': return "ϱ";
- case 'σ': return "ς";
- case 'γ': return "ɣ";
- case 'φ': return "ϕ";
- case 'υ': return "ϒ";
- case 'κ': return "ϰ";
- // alternating math characters
- case '∪': return "⋃";
- case '∩': return "⋂";
- case '∃': return "∄";
- case '∈': return "∉";
- case '∫': return "∮";
- case 'Π': return "∏";
- case 'Σ': return "∑";
- case '∨': return "⋁";
- case '∧': return "⋀";
- case '⊷': return "⊶";
- case '⊂': return "⊆";
- case '⊃': return "⊇";
- case '±': return "∓";
- // hebrew niqqud
- case 'ק': return "qamats"; // kamatz
- case 'ר': return "hataf_qamats"; // reduced kamatz
- case 'ו': return "holam";
- case 'ם': return "rafe";
- case 'פ': return "patah"; // patach
- case 'ש': return "sheva";
- case 'ד': return "dagesh"; // or mapiq
- case 'ח': return "hiriq";
- case 'ף': return "hataf_patah"; // reduced patach
- case 'ז': return "qubuts"; // kubuts
- case 'ס': return "segol";
- case 'ב': return "hataf_segol"; // reduced segol
- case 'צ': return "tsere";
- // Devanagari symbols
- case 'ए': return "ऍ";
- case 'े': return "ॅ";
- case 'ऐ': return "ऎ";
- case 'ै': return "ॆ";
- case 'ऋ': return "ॠ";
- case 'ृ': return "ॄ";
- case 'ळ': return "ऴ";
- case 'र': return "ऱ";
- case 'क': return "क़";
- case 'ख': return "ख़";
- case 'ग': return "ग़";
- case 'घ': return "ॻ";
- case 'ढ': return "ढ़";
- case 'न': return "ऩ";
- case 'ड': return "ड़";
- case 'ट': return "ॸ";
- case 'ण': return "ॾ";
- case 'फ': return "फ़";
- case 'ऌ': return "ॡ";
- case 'ॢ': return "ॣ";
- case 'औ': return "ॵ";
- case 'ौ': return "ॏ";
- case 'ओ': return "ऒ";
- case 'ो': return "ॊ";
- case 'च': return "ॼ";
- case 'ज': return "ज़";
- case 'ब': return "ॿ";
- case 'व': return "ॺ";
- case 'य': return "य़";
- case 'अ': return "ॲ";
- case 'आ': return "ऑ";
- case 'ा': return "ॉ";
- case 'झ': return "ॹ";
- case 'ई': return "ॴ";
- case 'ी': return "ऻ";
- case 'इ': return "ॳ";
- case 'ि': return "ऺ";
- case 'उ': return "ॶ";
- case 'ऊ': return "ॷ";
- case 'ु': return "ऄ";
- case 'ष': return "क्ष";
- case 'थ': return "त्र";
- case 'द': return "द्र";
- case 'प': return "प्र";
- case 'श': return "श्र";
- case 'छ': return "श्च";
- case 'ँ': return "ऀ";
- case '₹': return "₨";
- case 'ॖ': return "ॗ";
- case '॓': return "॔";
- case '॰': return "ॱ";
- case '।': return "॥";
- case 'ं': return "ॕ";
- case '़': return "ॎ";
- case 'ऽ': return "ॽ";
- // Persian numbers
- case '۱': return "f1";
- case '۲': return "f2";
- case '۳': return "f3";
- case '۴': return "f4";
- case '۵': return "f5";
- case '۶': return "f6";
- case '۷': return "f7";
- case '۸': return "f8";
- case '۹': return "f9";
- case '۰': return "f10";
- // Arabic numbers
- case '١': return "f1";
- case '٢': return "f2";
- case '٣': return "f3";
- case '٤': return "f4";
- case '٥': return "f5";
- case '٦': return "f6";
- case '٧': return "f7";
- case '٨': return "f8";
- case '٩': return "f9";
- case '٠': return "f10";
- default: return null;
- }
- }
-
private static KeyValue apply_ctrl(KeyValue k)
{
if (_modmap != null)