This commit is contained in:
CortexCore
2025-02-24 23:02:43 +08:00
parent 41715e4413
commit 8261a458e2
105 changed files with 2934 additions and 696 deletions

View File

@@ -0,0 +1,47 @@
using System;
using System.Collections;
using System.Collections.Generic;
namespace BITKit.UX.Hotkey
{
public interface IHotkeyProvider
{
string Name { get; }
string Description { get; }
object Data { get; }
bool Enabled { get; }
Action OnPerform { get; }
float HoldDuration => 0;
}
public struct HotkeyProvider : IHotkeyProvider
{
public string Name { get; set; }
public string Description { get; set; }
public object Data { get; set; }
public bool Enabled { get; set; }
public Action OnPerform { get; set; }
public float HoldDuration { get; set; }
}
public interface IHotkeyCollection
{
IEnumerable<IHotkeyProvider> Hotkeys { get; }
void Register(IHotkeyProvider hotkey);
void UnRegister(IHotkeyProvider hotkey);
}
public class HotkeyCollection:IHotkeyCollection
{
private readonly HashSet<IHotkeyProvider> _hotkeys = new();
public IEnumerable<IHotkeyProvider> Hotkeys => _hotkeys;
public void Register(IHotkeyProvider hotkey)
{
_hotkeys.Add(hotkey);
}
public void UnRegister(IHotkeyProvider hotkey)
{
_hotkeys.Remove(hotkey);
}
}
}