public HotkeyHandle Map(Hotkey hotkey, HotkeyHandler action) { var mapping = new HotkeyMapping { Hotkey = hotkey, Action = action, Id = Interlocked.Increment(ref _idCounter) }; _agent.AddMapping(mapping); return HotkeyHandle.Create(() => _agent.RemoveMappingByHotkey(hotkey)); }
public void AddMapping(HotkeyMapping mapping) { _mappings.Add(mapping); if(_hasHandle) { RegisterMapping(mapping); } else { CreateHandle(); } }
private void UnregisterMapping(HotkeyMapping mapping) { if(!mapping.Registered) return; HotkeyApi.Unregister(this, mapping.Id); mapping.Registered = false; }
public HotkeyEventArgs(HotkeyMapping mapping) { Mapping = mapping; }
private void RegisterMapping(HotkeyMapping mapping) { if(mapping.Registered) return; HotkeyApi.Register(this, mapping.Id, mapping.Hotkey); mapping.Registered = true; }