abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/KeyModifier.java
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/juloo.keyboard2/KeyModifier.java')
-rw-r--r--srcs/juloo.keyboard2/KeyModifier.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/srcs/juloo.keyboard2/KeyModifier.java b/srcs/juloo.keyboard2/KeyModifier.java
index c00ff07..ad41edc 100644
--- a/srcs/juloo.keyboard2/KeyModifier.java
+++ b/srcs/juloo.keyboard2/KeyModifier.java
@@ -60,6 +60,9 @@ class KeyModifier
case SLASH: return apply_map_char(k, map_char_slash);
case BAR: return apply_map_char(k, map_char_bar);
case ARROW_RIGHT: return apply_combining(k, "\u20D7");
+ case DOT_BELOW: return apply_map_char(k, map_char_dot_below);
+ case HORN: return apply_map_char(k, map_char_horn);
+ case HOOK_ABOVE: return apply_map_char(k, map_char_hook_above);
default: return k;
}
}
@@ -570,4 +573,62 @@ class KeyModifier
}
}
};
+
+ private static final Map_char map_char_dot_below =
+ new Map_char() {
+ public char apply(char c)
+ {
+ switch (c)
+ {
+ case 'a': return 'ạ';
+ case 'ă': return 'ặ';
+ case 'â': return 'ậ';
+ case 'e': return 'ẹ';
+ case 'ê': return 'ệ';
+ case 'i': return 'ị';
+ case 'o': return 'ọ';
+ case 'ô': return 'ộ';
+ case 'ơ': return 'ợ';
+ case 'u': return 'ụ';
+ case 'ư': return 'ự';
+ case 'y': return 'ỵ';
+ default: return c;
+ }
+ }
+ };
+ private static final Map_char map_char_horn =
+ new Map_char() {
+ public char apply(char c)
+ {
+ switch (c)
+ {
+ case 'o': return 'ơ';
+ case 'u': return 'ư';
+ default: return c;
+ }
+ }
+ };
+
+ private static final Map_char map_char_hook_above =
+ new Map_char() {
+ public char apply(char c)
+ {
+ switch (c)
+ {
+ case 'a': return 'ả';
+ case 'ă': return 'ẳ';
+ case 'â': return 'ẩ';
+ case 'e': return 'ẻ';
+ case 'ê': return 'ể';
+ case 'i': return 'ỉ';
+ case 'o': return 'ỏ';
+ case 'ô': return 'ổ';
+ case 'ơ': return 'ở';
+ case 'u': return 'ủ';
+ case 'ư': return 'ử';
+ case 'y': return 'ỷ';
+ default: return c;
+ }
+ }
+ };
}