abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/Modmap.java
diff options
context:
space:
mode:
authorJules Aguillon2025-04-15 00:05:52 +0200
committerJules Aguillon2025-04-15 00:05:52 +0200
commit460e5214a20a381af9b18273372477389927f3fc (patch)
tree184aeaaecba4794a6e1df5700131f8ae397f9e65 /srcs/juloo.keyboard2/Modmap.java
parent5ae3ec05e7dbf5ad023e5121a5f12900d14098a0 (diff)
downloadunexpected-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.java33
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);
+ }
+}