namespace Lattice.UI.Docking.Abstractions; /// /// Предоставляет абстракцию для платформенно-зависимых UI-операций. /// Инкапсулирует вызовы к системным диалогам, управление окнами и /// синхронизацию с UI-потоком. /// /// /// Этот интерфейс позволяет отделить бизнес-логику док-системы от конкретной /// UI-платформы (WinUI, WPF, Avalonia и т.д.), обеспечивая возможность /// кроссплатформенной разработки. /// public interface IDockUIService { /// /// Создает главное окно приложения для размещения док-хоста. /// /// /// Экземпляр , который будет содержаться в окне. /// /// /// Платформенно-зависимый объект окна, который можно отобразить. /// /// /// Выбрасывается, когда равен null. /// object CreateMainWindow(IDockHost host); /// /// Отображает модальное диалоговое окно с указанным содержимым. /// /// Заголовок диалогового окна. /// Содержимое диалогового окна. /// /// Nullable boolean значение, указывающее результат диалога: /// true - пользователь подтвердил действие, /// false - пользователь отменил действие, /// null - диалог был закрыт без выбора. /// /// /// Выбрасывается, когда или равны null. /// bool? ShowDialog(string title, object content); /// /// Отображает информационное сообщение с кнопкой OK. /// /// Текст сообщения. /// Заголовок окна сообщения. /// /// Выбрасывается, когда или равны null. /// void ShowMessage(string message, string caption); /// /// Отображает диалог подтверждения с кнопками Yes/No. /// /// Текст вопроса. /// Заголовок окна подтверждения. /// /// true, если пользователь выбрал "Yes"; false, если пользователь выбрал "No". /// /// /// Выбрасывается, когда или равны null. /// bool Confirm(string message, string caption); /// /// Отображает диалог ввода текста. /// /// Текст подсказки для пользователя. /// Значение по умолчанию для поля ввода. /// /// Введенный пользователем текст или null, если диалог был отменен. /// /// /// Выбрасывается, когда равен null. /// string? Prompt(string prompt, string? defaultValue = null); /// /// Выполняет указанное действие в UI-потоке. /// /// Действие для выполнения. /// /// Выбрасывается, когда равен null. /// void InvokeOnUIThread(Action action); }