30 lines
1.4 KiB
C#
30 lines
1.4 KiB
C#
namespace CursorLang.Services;
|
|
|
|
/// <summary>
|
|
/// Перехватывает Caps Lock на уровне системы и делит нажатия на короткие
|
|
/// и длинные. Что делать с ними — решают подписчики.
|
|
/// </summary>
|
|
public interface ICapsLockHotkeyService
|
|
{
|
|
/// <summary>Короткое нажатие: клавишу отпустили до порога удержания.</summary>
|
|
event EventHandler? Tapped;
|
|
|
|
/// <summary>Порог удержания пройден, клавишу всё ещё держат.</summary>
|
|
event EventHandler? HoldStarted;
|
|
|
|
/// <summary>Удержание закончилось: клавишу отпустили.</summary>
|
|
event EventHandler? HoldEnded;
|
|
|
|
/// <summary>Стоит ли перехват прямо сейчас.</summary>
|
|
bool IsRunning { get; }
|
|
|
|
/// <summary>
|
|
/// Начинает перехват. Вызывать нужно из потока пользовательского интерфейса:
|
|
/// системный хук клавиатуры работает только на потоке с циклом сообщений.
|
|
/// </summary>
|
|
void Start();
|
|
|
|
/// <summary>Снимает перехват, возвращая клавише её обычное поведение.</summary>
|
|
void Stop();
|
|
}
|