From 460e5214a20a381af9b18273372477389927f3fc Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Tue, 15 Apr 2025 00:05:52 +0200 Subject: Add class Modmap and test KeyModifier --- srcs/juloo.keyboard2/Modmap.java | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 srcs/juloo.keyboard2/Modmap.java (limited to 'srcs/juloo.keyboard2/Modmap.java') 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[] _map; + + public Modmap() + { + _map = (Map[])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(); + _map[i].put(a, b); + } + + public KeyValue get(M m, KeyValue a) + { + Map mm = _map[m.ordinal()]; + return (mm == null) ? null : mm.get(a); + } +} -- cgit v1.2.3