diff options
Diffstat (limited to 'srcs/juloo.keyboard2/Modmap.java')
| -rw-r--r-- | srcs/juloo.keyboard2/Modmap.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/srcs/juloo.keyboard2/Modmap.java b/srcs/juloo.keyboard2/Modmap.java new file mode 100644 index 0000000..77ee64d --- /dev/null +++ b/srcs/juloo.keyboard2/Modmap.java @@ -0,0 +1,33 @@ +package juloo.keyboard2; + +import java.lang.reflect.Array; +import java.util.Map; +import java.util.TreeMap; + +/** Stores key combinations that are applied by [KeyModifier]. */ +public final class Modmap +{ + public enum M { Shift, Fn, Ctrl } + + Map<KeyValue, KeyValue>[] _map; + + public Modmap() + { + _map = (Map<KeyValue, KeyValue>[])Array.newInstance(TreeMap.class, + M.values().length); + } + + public void add(M m, KeyValue a, KeyValue b) + { + int i = m.ordinal(); + if (_map[i] == null) + _map[i] = new TreeMap<KeyValue, KeyValue>(); + _map[i].put(a, b); + } + + public KeyValue get(M m, KeyValue a) + { + Map<KeyValue, KeyValue> mm = _map[m.ordinal()]; + return (mm == null) ? null : mm.get(a); + } +} |
