namespace Lattice.UI.Docking.Abstractions;
///
/// Определяет контракт для команды в UI-слое док-системы.
/// Команды представляют действия, которые могут быть выполнены пользователем.
///
public interface IDockCommand
{
///
/// Получает уникальный идентификатор команды.
///
///
/// Строковый идентификатор команды.
///
string Id { get; }
///
/// Получает отображаемое имя команды.
///
///
/// Имя команды, отображаемое в пользовательском интерфейсе.
///
string Name { get; }
///
/// Получает описание команды.
///
///
/// Текстовое описание функциональности команды.
///
string Description { get; }
///
/// Получает идентификатор ресурса для иконки команды.
///
///
/// Имя ресурса иконки или путь к файлу иконки.
///
string Icon { get; }
///
/// Получает комбинацию клавиш для быстрого вызова команды.
///
///
/// Строковое представление горячей клавиши (например, "Ctrl+S").
///
string Shortcut { get; }
///
/// Определяет, можно ли выполнить команду в текущем контексте.
///
/// Параметр команды.
///
/// true, если команду можно выполнить; в противном случае false.
///
bool CanExecute(object? parameter);
///
/// Выполняет команду.
///
/// Параметр команды.
void Execute(object? parameter);
///
/// Происходит при изменении возможности выполнения команды.
///
event EventHandler CanExecuteChanged;
}