Files
Lattice/Lattice.UI.Docking/Abstractions/IDockContextManager.cs
2026-01-27 06:07:15 +03:00

50 lines
2.2 KiB
C#

namespace Lattice.UI.Docking.Abstractions;
/// <summary>
/// Определяет контракт для менеджера контекстных меню док-системы.
/// </summary>
public interface IDockContextManager
{
/// <summary>
/// Показывает контекстное меню для указанного элемента.
/// </summary>
/// <param name="element">Элемент, для которого показывается меню.</param>
/// <param name="x">Координата X для отображения меню.</param>
/// <param name="y">Координата Y для отображения меню.</param>
/// <exception cref="ArgumentNullException">
/// Выбрасывается, если <paramref name="element"/> равен null.
/// </exception>
void ShowContextMenu(IDockControl element, double x, double y);
/// <summary>
/// Скрывает текущее контекстное меню.
/// </summary>
void HideContextMenu();
/// <summary>
/// Регистрирует команду в контекстном меню.
/// </summary>
/// <param name="commandId">Идентификатор команды.</param>
/// <param name="command">Команда для регистрации.</param>
/// <exception cref="ArgumentNullException">
/// Выбрасывается, если <paramref name="commandId"/> или <paramref name="command"/>
/// равны null.
/// </exception>
void RegisterCommand(string commandId, IDockCommand command);
/// <summary>
/// Удаляет команду из контекстного меню.
/// </summary>
/// <param name="commandId">Идентификатор команды.</param>
void UnregisterCommand(string commandId);
/// <summary>
/// Происходит при показе контекстного меню.
/// </summary>
event EventHandler<ContextMenuShownEventArgs> ContextMenuShown;
/// <summary>
/// Происходит при скрытии контекстного меню.
/// </summary>
event EventHandler ContextMenuHidden;
}