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

99 lines
3.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Lattice.Core.Docking.Models;
namespace Lattice.UI.Docking.Abstractions;
/// <summary>
/// Определяет контракт для UI-контрола, который представляет автоскрываемую панель.
/// </summary>
/// <remarks>
/// Автоскрываемые панели прикреплены к одной из сторон окна и скрываются,
/// оставляя видимым только заголовок. При наведении курсора панель выезжает.
/// </remarks>
public interface IAutoHidePanelControl : IDockControl
{
/// <summary>
/// Получает или задает сторону прикрепления панели.
/// </summary>
/// <value>
/// Сторона окна, к которой прикреплена панель.
/// </value>
DockSide Side { get; set; }
/// <summary>
/// Получает или задает ширину панели (для левой/правой сторон).
/// </summary>
/// <value>
/// Ширина панели в пикселях.
/// </value>
double Width { get; set; }
/// <summary>
/// Получает или задает высоту панели (для верхней/нижней сторон).
/// </summary>
/// <value>
/// Высота панели в пикселях.
/// </value>
double Height { get; set; }
/// <summary>
/// Получает или задает признак видимости панели.
/// </summary>
/// <value>
/// true, если панель видима; в противном случае — false.
/// </value>
bool IsVisible { get; set; }
/// <summary>
/// Получает или задает признак того, что панель всегда видима.
/// </summary>
/// <value>
/// true, если панель всегда видима; в противном случае — false.
/// </value>
bool IsPinned { get; set; }
/// <summary>
/// Получает или задает задержку перед скрытием панели (в миллисекундах).
/// </summary>
/// <value>
/// Задержка в миллисекундах.
/// </value>
int AutoHideDelay { get; set; }
/// <summary>
/// Показывает панель.
/// </summary>
void Show();
/// <summary>
/// Скрывает панель.
/// </summary>
void Hide();
/// <summary>
/// Переключает состояние видимости панели.
/// </summary>
void Toggle();
/// <summary>
/// Задает фиксированное состояние панели.
/// </summary>
/// <param name="pinned">
/// true, чтобы зафиксировать панель; false, чтобы разрешить автоскрытие.
/// </param>
void SetPinned(bool pinned);
/// <summary>
/// Происходит при изменении видимости панели.
/// </summary>
event EventHandler VisibilityChanged;
/// <summary>
/// Происходит при наведении курсора на панель.
/// </summary>
event EventHandler MouseEntered;
/// <summary>
/// Происходит при уходе курсора с панели.
/// </summary>
event EventHandler MouseLeft;
}