예제 #1
0
        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));
        }
예제 #2
0
 public void AddMapping(HotkeyMapping mapping)
 {
     _mappings.Add(mapping);
     if(_hasHandle) {
         RegisterMapping(mapping);
     } else {
         CreateHandle();
     }
 }
예제 #3
0
 private void UnregisterMapping(HotkeyMapping mapping)
 {
     if(!mapping.Registered) return;
     HotkeyApi.Unregister(this, mapping.Id);
     mapping.Registered = false;
 }
예제 #4
0
 public HotkeyEventArgs(HotkeyMapping mapping)
 {
     Mapping = mapping;
 }
예제 #5
0
 private void RegisterMapping(HotkeyMapping mapping)
 {
     if(mapping.Registered) return;
     HotkeyApi.Register(this, mapping.Id, mapping.Hotkey);
     mapping.Registered = true;
 }