namespace Lattice.UI.Docking.Abstractions;
///
/// Определяет контракт для UI-контрола, который представляет плавающее окно док-системы.
///
///
/// Плавающие окна могут перемещаться по экрану, изменять размер и содержать
/// любой элемент док-системы (группу или лист).
///
public interface IFloatingWindowControl : IDockControl
{
///
/// Получает или задает заголовок окна.
///
///
/// Текст заголовка окна.
///
string Title { get; set; }
///
/// Получает или задает позицию X окна на экране.
///
///
/// Координата X левого верхнего угла окна.
///
double Left { get; set; }
///
/// Получает или задает позицию Y окна на экране.
///
///
/// Координата Y левого верхнего угла окна.
///
double Top { get; set; }
///
/// Получает или задает ширину окна.
///
///
/// Ширина окна в пикселях.
///
double Width { get; set; }
///
/// Получает или задает высоту окна.
///
///
/// Высота окна в пикселях.
///
double Height { get; set; }
///
/// Получает или задает признак того, что окно можно изменять.
///
///
/// true, если размеры окна можно изменять; в противном случае — false.
///
bool CanResize { get; set; }
///
/// Получает или задает признак того, что окно можно перемещать.
///
///
/// true, если окно можно перемещать; в противном случае — false.
///
bool CanMove { get; set; }
///
/// Получает или задает признак того, что окно всегда поверх других окон.
///
///
/// true, если окно всегда поверх; в противном случае — false.
///
bool AlwaysOnTop { get; set; }
///
/// Показывает окно.
///
void Show();
///
/// Скрывает окно.
///
void Hide();
///
/// Закрывает окно.
///
void Close();
///
/// Активирует окно (переводит фокус).
///
void Activate();
///
/// Событие, возникающее при закрытии окна.
///
event EventHandler Closing;
///
/// Событие, возникающее при изменении положения окна.
///
event EventHandler LocationChanged;
///
/// Событие, возникающее при изменении размера окна.
///
event EventHandler SizeChanged;
}