mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-05-29 10:25:50 +08:00
new mouse key hook
This commit is contained in:
48
Common/MouseKeyHook/HotKeys/HotKeySetCollection.cs
Normal file
48
Common/MouseKeyHook/HotKeys/HotKeySetCollection.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
// This code is distributed under MIT license.
|
||||
// Copyright (c) 2015 George Mamaladze
|
||||
// See license.txt or https://mit-license.org/
|
||||
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Gma.System.MouseKeyHook.HotKeys
|
||||
{
|
||||
/// <summary>
|
||||
/// A collection of HotKeySets
|
||||
/// </summary>
|
||||
public sealed class HotKeySetCollection : List<HotKeySet>
|
||||
{
|
||||
private KeyChainHandler m_keyChain;
|
||||
|
||||
/// <summary>
|
||||
/// Adds a HotKeySet to the collection.
|
||||
/// </summary>
|
||||
/// <param name="hks"></param>
|
||||
public new void Add(HotKeySet hks)
|
||||
{
|
||||
m_keyChain += hks.OnKey;
|
||||
base.Add(hks);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes the HotKeySet from the collection.
|
||||
/// </summary>
|
||||
/// <param name="hks"></param>
|
||||
public new void Remove(HotKeySet hks)
|
||||
{
|
||||
m_keyChain -= hks.OnKey;
|
||||
base.Remove(hks);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Uses a multi-case delegate to invoke individual HotKeySets if the Key is in use by any HotKeySets.
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
internal void OnKey(KeyEventArgsExt e)
|
||||
{
|
||||
if (m_keyChain != null)
|
||||
m_keyChain(e);
|
||||
}
|
||||
|
||||
private delegate void KeyChainHandler(KeyEventArgsExt kex);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user