static private void RegisterBindings(Dictionary <string, Key[]> config) { var bindings = new Dictionary <string, Tuple <Key[], VirtualKeyCode[], VirtualKeyCode[]> >(); foreach (var key in config.Keys) { var keys = config[key]; var binding = MainUtils.ConvertKeys(keys); bindings[key] = binding; } lock (_bindingsLock) { _bindings = bindings; } }
// Add incoming keys to the current binding public void OnKeyDown(Key key) { if (MainUtils.MatchVirtualKey(key) != null) { if (_registeringElement == null) { return; } if (_keysDown.Count == 0) { _keys.Clear(); } _keys.Add(key); _keysDown.Add(key); UpdateCurrentObject(); } }
/** * Store key codes as virtual key codes. */ static public void RegisterBinding(string actionKey, HashSet <Key> keys) { var keysArr = new Key[keys.Count]; keys.CopyTo(keysArr); var binding = MainUtils.ConvertKeys(keysArr); lock (_bindingsLock) { _bindings[actionKey] = binding; var config = new Dictionary <string, Key[]>(); foreach (var key in _bindings.Keys) { config.Add(key, _bindings[key].Item1); } StoreConfig(config); } }