using System;
namespace Ink_Canvas.Helpers.Plugins
{
///
/// 窗口服务接口,统一所有窗口操作相关的方法
///
public interface IWindowService
{
#region 窗口显示和隐藏
///
/// 显示设置窗口
///
void ShowSettingsWindow();
///
/// 隐藏设置窗口
///
void HideSettingsWindow();
///
/// 显示插件设置窗口
///
void ShowPluginSettingsWindow();
///
/// 隐藏插件设置窗口
///
void HidePluginSettingsWindow();
///
/// 显示帮助窗口
///
void ShowHelpWindow();
///
/// 隐藏帮助窗口
///
void HideHelpWindow();
///
/// 显示关于窗口
///
void ShowAboutWindow();
///
/// 隐藏关于窗口
///
void HideAboutWindow();
#endregion
#region 对话框和通知
///
/// 显示通知消息
///
/// 消息内容
/// 消息类型
void ShowNotification(string message, NotificationType type = NotificationType.Info);
///
/// 显示确认对话框
///
/// 消息内容
/// 标题
/// 用户选择结果
bool ShowConfirmDialog(string message, string title = "确认");
///
/// 显示输入对话框
///
/// 提示消息
/// 标题
/// 默认值
/// 用户输入内容
string ShowInputDialog(string message, string title = "输入", string defaultValue = "");
#endregion
#region 窗口状态控制
///
/// 设置窗口全屏状态
///
/// 是否全屏
void SetFullScreen(bool isFullScreen);
///
/// 设置窗口置顶状态
///
/// 是否置顶
void SetTopMost(bool isTopMost);
///
/// 设置窗口可见性
///
/// 是否可见
void SetWindowVisibility(bool isVisible);
///
/// 最小化窗口
///
void MinimizeWindow();
///
/// 最大化窗口
///
void MaximizeWindow();
///
/// 恢复窗口
///
void RestoreWindow();
///
/// 关闭窗口
///
void CloseWindow();
#endregion
#region 窗口位置和大小
///
/// 设置窗口位置
///
/// X坐标
/// Y坐标
void SetWindowPosition(double x, double y);
///
/// 设置窗口大小
///
/// 宽度
/// 高度
void SetWindowSize(double width, double height);
///
/// 获取窗口位置
///
/// 窗口位置
(double x, double y) GetWindowPosition();
///
/// 获取窗口大小
///
/// 窗口大小
(double width, double height) GetWindowSize();
#endregion
}
}