diff options
Diffstat (limited to 'srcs/juloo.keyboard2/KeyModifier.java')
| -rw-r--r-- | srcs/juloo.keyboard2/KeyModifier.java | 191 |
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) |
