From db347c665c35ed5ca89274e227267d48f0eeca95 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sat, 15 Oct 2022 23:28:36 +0200 Subject: [PATCH] Add the breve diacritic --- .../ExtraKeyCheckBoxPreference.java | 1 + srcs/juloo.keyboard2/KeyModifier.java | 1 + srcs/juloo.keyboard2/KeyValue.java | 38 ++++++++++-------- srcs/special_font/5E.svg | 13 ++++++ srcs/special_font/result.ttf | Bin 6912 -> 7136 bytes 5 files changed, 37 insertions(+), 16 deletions(-) create mode 100644 srcs/special_font/5E.svg diff --git a/srcs/juloo.keyboard2/ExtraKeyCheckBoxPreference.java b/srcs/juloo.keyboard2/ExtraKeyCheckBoxPreference.java index 79e9051..0a98b9d 100644 --- a/srcs/juloo.keyboard2/ExtraKeyCheckBoxPreference.java +++ b/srcs/juloo.keyboard2/ExtraKeyCheckBoxPreference.java @@ -26,6 +26,7 @@ public class ExtraKeyCheckBoxPreference extends CheckBoxPreference "accent_caron", "accent_macron", "accent_ogonek", + "accent_breve", "€", "ß", "£", diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java index 325594c..851c37d 100644 --- a/srcs/juloo.keyboard2/KeyModifier.java +++ b/srcs/juloo.keyboard2/KeyModifier.java @@ -50,6 +50,7 @@ class KeyModifier case MACRON: return apply_dead_char(k, '\u00AF'); case OGONEK: return apply_dead_char(k, '\u02DB'); case DOT_ABOVE: return apply_dead_char(k, '\u02D9'); + case BREVE: return apply_dead_char(k, '\u02D8'); case DOUBLE_AIGU: return apply_map_char(k, map_char_double_aigu); case ORDINAL: return apply_map_char(k, map_char_ordinal); case SUPERSCRIPT: return apply_map_char(k, map_char_superscript); diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index 1bd8432..9b89101 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -45,7 +45,8 @@ final class KeyValue BOX, OGONEK, SLASH, - ARROW_RIGHT + ARROW_RIGHT, + BREVE } // Behavior flags. @@ -223,6 +224,11 @@ final class KeyValue FLAG_LATCH | FLAG_SPECIAL | extra_flags); } + private static void addDiacritic(String name, int special_font_symbol, Modifier m) + { + addModifierKey(name, String.valueOf((char)special_font_symbol), m, 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); @@ -249,21 +255,21 @@ final class KeyValue Modifier.SHIFT, FLAG_KEY_FONT | FLAG_SMALLER_FONT); addModifierKey("ctrl", "Ctrl", Modifier.CTRL, FLAG_SMALLER_FONT); addModifierKey("alt", "Alt", Modifier.ALT, FLAG_SMALLER_FONT); - addModifierKey("accent_aigu", "\u0050", Modifier.AIGU, FLAG_KEY_FONT); - addModifierKey("accent_caron", "\u0051", Modifier.CARON, FLAG_KEY_FONT); - addModifierKey("accent_cedille", "\u0052", Modifier.CEDILLE, FLAG_KEY_FONT); - addModifierKey("accent_circonflexe", "\u0053", Modifier.CIRCONFLEXE, FLAG_KEY_FONT); - addModifierKey("accent_grave", "\u0054", Modifier.GRAVE, FLAG_KEY_FONT); - addModifierKey("accent_macron", "\u0055", Modifier.MACRON, FLAG_KEY_FONT); - addModifierKey("accent_ring", "\u0056", Modifier.RING, FLAG_KEY_FONT); - addModifierKey("accent_tilde", "\u0057", Modifier.TILDE, FLAG_KEY_FONT); - addModifierKey("accent_trema", "\u0058", Modifier.TREMA, FLAG_KEY_FONT); - addModifierKey("accent_ogonek", "\u0059", Modifier.OGONEK, FLAG_KEY_FONT); - addModifierKey("accent_dot_above", "\u005a", Modifier.DOT_ABOVE, FLAG_KEY_FONT); - addModifierKey("accent_double_aigu", "\u005b", Modifier.DOUBLE_AIGU, FLAG_KEY_FONT); - addModifierKey("accent_slash", "\134", // Can't write u005c - Modifier.SLASH, FLAG_KEY_FONT); - addModifierKey("accent_arrow_right", "\u005d", Modifier.ARROW_RIGHT, FLAG_KEY_FONT); + addDiacritic("accent_aigu", 0x50, Modifier.AIGU); + addDiacritic("accent_caron", 0x51, Modifier.CARON); + addDiacritic("accent_cedille", 0x52, Modifier.CEDILLE); + addDiacritic("accent_circonflexe", 0x53, Modifier.CIRCONFLEXE); + addDiacritic("accent_grave", 0x54, Modifier.GRAVE); + addDiacritic("accent_macron", 0x55, Modifier.MACRON); + addDiacritic("accent_ring", 0x56, Modifier.RING); + addDiacritic("accent_tilde", 0x57, Modifier.TILDE); + addDiacritic("accent_trema", 0x58, Modifier.TREMA); + addDiacritic("accent_ogonek", 0x59, Modifier.OGONEK); + addDiacritic("accent_dot_above", 0x5A, Modifier.DOT_ABOVE); + addDiacritic("accent_double_aigu", 0x5B, Modifier.DOUBLE_AIGU); + addDiacritic("accent_slash", 0x5C, Modifier.SLASH); + addDiacritic("accent_arrow_right", 0x5D, Modifier.ARROW_RIGHT); + addDiacritic("accent_breve", 0x5E, Modifier.BREVE); addModifierKey("superscript", "Sup", Modifier.SUPERSCRIPT, FLAG_SMALLER_FONT); addModifierKey("subscript", "Sub", Modifier.SUBSCRIPT, FLAG_SMALLER_FONT); addModifierKey("ordinal", "Ord", Modifier.ORDINAL, FLAG_SMALLER_FONT); diff --git a/srcs/special_font/5E.svg b/srcs/special_font/5E.svg new file mode 100644 index 0000000..3ba685b --- /dev/null +++ b/srcs/special_font/5E.svg @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/srcs/special_font/result.ttf b/srcs/special_font/result.ttf index 3a947ee19f86808b5c32f29047f23995bda42e42..defef369dba18c2b41e4d40aea45e3b44465c0d6 100644 GIT binary patch delta 526 zcmXX?OH30{6g}_F*mi20QfbmssA)%Rj3hAlfruKlC^Q5GLPF9=2$NbV32jGPmAVn* zhC~uI4-?%OcDggj(zpRxn6O}p8^h9#VxkLo^>kuhZr(fR+|2j-{+gt=!{{rL@NR2g*-IzxES74y#re;^brSDLEH6~@c6N7glMS8| z50&gi2lw!v`U&D>*)A1k>!}++j16U*Q>oTgzkG@U@$b}sx@KtT?VV@SFZRZ~rc0Qr zTO>qAjfzWRMy-goarqHL%;(^4bhv526j5^>9ndkr+s7k$2N1>#jdBbGG0qp+#+IAw zAq%xE%Oa(O_Dbzazk00=>;8wp#=aJgv>W{Eqdhr54! znt+-wn)0WT>CFA@@h1(GQ2%h3;X-$Yo=>eAr$X3xHM&*R)6ASV{T+FkVrrq$n zEx