diff options
| author | Jules Aguillon | 2025-04-15 00:05:52 +0200 |
|---|---|---|
| committer | Jules Aguillon | 2025-04-15 00:05:52 +0200 |
| commit | 460e5214a20a381af9b18273372477389927f3fc (patch) | |
| tree | 184aeaaecba4794a6e1df5700131f8ae397f9e65 /srcs/juloo.keyboard2/Modmap.java | |
| parent | 5ae3ec05e7dbf5ad023e5121a5f12900d14098a0 (diff) | |
| download | unexpected-keyboard-460e5214a20a381af9b18273372477389927f3fc.tar.gz unexpected-keyboard-460e5214a20a381af9b18273372477389927f3fc.zip | |
Add class Modmap and test KeyModifier
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); + } +} |
