using System; using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace Ink_Canvas.Helpers.Plugins { /// /// 插件服务接口,提供对软件内部功能的访问 /// public interface IPluginService { #region 窗口和UI访问 /// /// 获取主窗口引用 /// Window MainWindow { get; } /// /// 获取当前画布 /// InkCanvas CurrentCanvas { get; } /// /// 获取所有画布页面 /// List AllCanvasPages { get; } /// /// 获取当前页面索引 /// int CurrentPageIndex { get; } /// /// 获取当前页面数量 /// int TotalPageCount { get; } /// /// 获取浮动工具栏 /// FrameworkElement FloatingToolBar { get; } /// /// 获取左侧面板 /// FrameworkElement LeftPanel { get; } /// /// 获取右侧面板 /// FrameworkElement RightPanel { get; } /// /// 获取顶部面板 /// FrameworkElement TopPanel { get; } /// /// 获取底部面板 /// FrameworkElement BottomPanel { get; } #endregion #region 绘制工具状态 /// /// 获取当前绘制模式 /// int CurrentDrawingMode { get; } /// /// 获取当前笔触宽度 /// double CurrentInkWidth { get; } /// /// 获取当前笔触颜色 /// Color CurrentInkColor { get; } /// /// 获取当前高亮笔宽度 /// double CurrentHighlighterWidth { get; } /// /// 获取当前橡皮擦大小 /// int CurrentEraserSize { get; } /// /// 获取当前橡皮擦类型 /// int CurrentEraserType { get; } /// /// 获取当前橡皮擦形状 /// int CurrentEraserShape { get; } /// /// 获取当前笔触透明度 /// double CurrentInkAlpha { get; } /// /// 获取当前笔触样式 /// int CurrentInkStyle { get; } /// /// 获取当前背景颜色 /// string CurrentBackgroundColor { get; } #endregion #region 应用状态 /// /// 获取当前主题模式 /// bool IsDarkTheme { get; } /// /// 获取当前是否为白板模式 /// bool IsWhiteboardMode { get; } /// /// 获取当前是否为PPT模式 /// bool IsPPTMode { get; } /// /// 获取当前是否为全屏模式 /// bool IsFullScreenMode { get; } /// /// 获取当前是否为画板模式 /// bool IsCanvasMode { get; } /// /// 获取当前是否为选择模式 /// bool IsSelectionMode { get; } /// /// 获取当前是否为擦除模式 /// bool IsEraserMode { get; } /// /// 获取当前是否为形状绘制模式 /// bool IsShapeDrawingMode { get; } /// /// 获取当前是否为高亮模式 /// bool IsHighlighterMode { get; } #endregion #region 画布操作 /// /// 清除当前画布 /// void ClearCanvas(); /// /// 清除所有画布 /// void ClearAllCanvases(); /// /// 添加新页面 /// void AddNewPage(); /// /// 删除当前页面 /// void DeleteCurrentPage(); /// /// 切换到指定页面 /// /// 页面索引 void SwitchToPage(int pageIndex); /// /// 切换到下一页 /// void NextPage(); /// /// 切换到上一页 /// void PreviousPage(); #endregion #region 绘制操作 /// /// 设置绘制模式 /// /// 绘制模式 void SetDrawingMode(int mode); /// /// 设置笔触宽度 /// /// 宽度 void SetInkWidth(double width); /// /// 设置笔触颜色 /// /// 颜色 void SetInkColor(Color color); /// /// 设置高亮笔宽度 /// /// 宽度 void SetHighlighterWidth(double width); /// /// 设置橡皮擦大小 /// /// 大小 void SetEraserSize(int size); /// /// 设置橡皮擦类型 /// /// 类型 void SetEraserType(int type); /// /// 设置橡皮擦形状 /// /// 形状 void SetEraserShape(int shape); /// /// 设置笔触透明度 /// /// 透明度 void SetInkAlpha(double alpha); /// /// 设置笔触样式 /// /// 样式 void SetInkStyle(int style); /// /// 设置背景颜色 /// /// 颜色 void SetBackgroundColor(string color); #endregion #region 文件操作 /// /// 保存画布内容 /// /// 文件路径 void SaveCanvas(string filePath); /// /// 加载画布内容 /// /// 文件路径 void LoadCanvas(string filePath); /// /// 导出为图片 /// /// 文件路径 /// 图片格式 void ExportAsImage(string filePath, string format); /// /// 导出为PDF /// /// 文件路径 void ExportAsPDF(string filePath); #endregion #region 撤销重做 /// /// 撤销操作 /// void Undo(); /// /// 重做操作 /// void Redo(); /// /// 是否可以撤销 /// bool CanUndo { get; } /// /// 是否可以重做 /// bool CanRedo { get; } #endregion #region 选择操作 /// /// 全选 /// void SelectAll(); /// /// 取消选择 /// void DeselectAll(); /// /// 删除选中内容 /// void DeleteSelected(); /// /// 复制选中内容 /// void CopySelected(); /// /// 剪切选中内容 /// void CutSelected(); /// /// 粘贴内容 /// void Paste(); #endregion #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 系统功能 /// /// 获取系统设置 /// /// 设置类型 /// 设置键 /// 默认值 /// 设置值 T GetSetting(string key, T defaultValue = default(T)); /// /// 设置系统设置 /// /// 设置类型 /// 设置键 /// 设置值 void SetSetting(string key, T value); /// /// 保存设置到文件 /// void SaveSettings(); /// /// 从文件加载设置 /// void LoadSettings(); /// /// 重置设置为默认值 /// void ResetSettings(); #endregion #region 插件管理 /// /// 获取所有已加载的插件 /// /// 插件列表 List GetAllPlugins(); /// /// 获取指定插件 /// /// 插件名称 /// 插件实例 IPlugin GetPlugin(string pluginName); /// /// 启用插件 /// /// 插件名称 void EnablePlugin(string pluginName); /// /// 禁用插件 /// /// 插件名称 void DisablePlugin(string pluginName); /// /// 卸载插件 /// /// 插件名称 void UnloadPlugin(string pluginName); #endregion #region 事件系统 /// /// 注册事件处理器 /// /// 事件名称 /// 事件处理器 void RegisterEventHandler(string eventName, EventHandler handler); /// /// 注销事件处理器 /// /// 事件名称 /// 事件处理器 void UnregisterEventHandler(string eventName, EventHandler handler); /// /// 触发事件 /// /// 事件名称 /// 事件发送者 /// 事件参数 void TriggerEvent(string eventName, object sender, EventArgs args); #endregion } /// /// 通知类型枚举 /// public enum NotificationType { /// /// 信息 /// Info, /// /// 成功 /// Success, /// /// 警告 /// Warning, /// /// 错误 /// Error } }