using Lattice.Core.Docking.Models;
namespace Lattice.UI.Docking.Abstractions;
///
/// Определяет контракт для UI-контрола, который представляет автоскрываемую панель.
///
///
/// Автоскрываемые панели прикреплены к одной из сторон окна и скрываются,
/// оставляя видимым только заголовок. При наведении курсора панель выезжает.
///
public interface IAutoHidePanelControl : IDockControl
{
///
/// Получает или задает сторону прикрепления панели.
///
///
/// Сторона окна, к которой прикреплена панель.
///
DockSide Side { get; set; }
///
/// Получает или задает ширину панели (для левой/правой сторон).
///
///
/// Ширина панели в пикселях.
///
double Width { get; set; }
///
/// Получает или задает высоту панели (для верхней/нижней сторон).
///
///
/// Высота панели в пикселях.
///
double Height { get; set; }
///
/// Получает или задает признак видимости панели.
///
///
/// true, если панель видима; в противном случае — false.
///
bool IsVisible { get; set; }
///
/// Получает или задает признак того, что панель всегда видима.
///
///
/// true, если панель всегда видима; в противном случае — false.
///
bool IsPinned { get; set; }
///
/// Получает или задает задержку перед скрытием панели (в миллисекундах).
///
///
/// Задержка в миллисекундах.
///
int AutoHideDelay { get; set; }
///
/// Показывает панель.
///
void Show();
///
/// Скрывает панель.
///
void Hide();
///
/// Переключает состояние видимости панели.
///
void Toggle();
///
/// Задает фиксированное состояние панели.
///
///
/// true, чтобы зафиксировать панель; false, чтобы разрешить автоскрытие.
///
void SetPinned(bool pinned);
///
/// Происходит при изменении видимости панели.
///
event EventHandler VisibilityChanged;
///
/// Происходит при наведении курсора на панель.
///
event EventHandler MouseEntered;
///
/// Происходит при уходе курсора с панели.
///
event EventHandler MouseLeft;
}