Shortcut
Ресурс альтернативных сочетаний ввода, отдельно от команды и InputMap.
Shortcut хранит InputEvent-привязки и проверяет события; сам по себе не регистрирует hotkey и не исполняет действие. Для команды на первое нажатие отдельно проверяйте pressed/echo и маршрутизацию интерфейса.
Events — общий массив, а не snapshot. Правки массива меняют ресурс без Changed; setter или явный EmitChanged уведомляет наблюдателей. События тоже общие. HasValidEvent проверяет наличие ресурса InputEvent, а не полноценность привязки.
InputEventShortcut распознаётся по ссылке на этот ресурс, не по одинаковым событиям другого Shortcut. Не вкладывайте такой trigger в Events. Проверены matching, release, modifiers, общие массивы и Changed без GUI; доступность контролов и dispatch не проверялись.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
ShortcutКонструктор
public Shortcut();Создаёт собственный ресурс сочетания без событий. Сам по себе не регистрирует hotkey, не подключается к InputMap и не исполняет команду. Назначьте его поддерживающему Shortcut контролу или проверяйте события явно.
Свойства1
EventsСвойство
public Reckfell.Collections.Array Events { get; set; }Массив альтернативных InputEvent-привязок. Setter хранит общий массив и испускает Changed; getter тоже возвращает общий backing array. Прямые Add/Remove/Clear видны ресурсу, но не испускают Changed. Назначьте подготовленный массив через setter либо явно уведомите EmitChanged после допустимого изменения. InputEventShortcut внутри запрещён setter: не создавайте рекурсивные сочетания.
Методы5
GetAsTextstring
public string GetAsText();Возвращает AsText первого элемента, который является InputEvent; это не перечисление всех альтернатив. При отсутствии такого ресурса возвращает "None". Отображаемая подпись не доказывает пригодность привязки и не является стабильным ID/форматом сохранения.
stringПодпись первого InputEvent либо "None".
GetEventsReckfell.Collections.Array
public Reckfell.Collections.Array GetEvents();Возвращает wrapper общего нетипизированного Array событий. Правки контейнера меняют ресурс без Changed; события внутри тоже общие. Dispose собственный wrapper Array после использования, но не чужие InputEvent wrappers, ещё используемые другими владельцами. Для независимого редактирования подготовьте отдельный массив и при необходимости отдельные ресурсы.
Reckfell.Collections.ArrayСобственный wrapper общего нетипизированного Array; Dispose wrapper после использования.
HasValidEventbool
public bool HasValidEvent();Проверяет, есть ли хотя бы одна непустая ссылка InputEvent. Пустой InputEventKey без назначенного Keycode тоже удовлетворяет этой проверке. true не означает, что событие можно вызвать с текущей клавиатуры или что Shortcut назначен контролу.
boolНаличие InputEvent-ресурса, не проверка полноценной привязки.
MatchesEventbool
public bool MatchesEvent(InputEvent @event);Проверяет альтернативы через IsMatch с exact=true: key modifiers должны совпасть, но press/release сами по себе не фильтруются. Не проверяет текущий Input state и не исполняет команду. Отдельного device-фильтра InputMap здесь нет. InputEventShortcut совпадает по ссылке на этот Shortcut, а не по равенству массивов; такой trigger может совпасть и с пустым Shortcut. Отдельно проверяйте IsPressed/IsEcho, если команда должна сработать только на первом нажатии.
| Имя | Тип | По умолчанию |
|---|---|---|
event | InputEvent | — |
eventНепустой InputEvent для сравнения/привязки; wrapper identity обычно не является критерием совпадения.
boolСовпадение альтернативы или identity Shortcut-trigger; не решение об исполнении команды.
SetEventsvoid
public void SetEvents(Reckfell.Collections.Array events);Назначает общий массив альтернативных InputEvent и испускает Changed. Не клонирует события или контейнер и не регистрирует команду. Проверка запрещает InputEventShortcut до присваивания; изменение возвращённого массива в обход setter не является безопасным обходом этого правила.
| Имя | Тип | По умолчанию |
|---|---|---|
events | Reckfell.Collections.Array | — |
eventsМассив альтернативных InputEvent без InputEventShortcut; setter хранит общий контейнер.