using System; using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Ink; namespace InkCanvasForClass.PluginSdk { /// /// 插件上下文接口,提供对主应用程序功能的访问 /// public interface IPluginContext { /// /// 主窗口实例 /// Window MainWindow { get; } /// /// 当前画布 /// System.Windows.Controls.InkCanvas CurrentCanvas { get; } /// /// 所有画布页面 /// IList AllCanvasPages { get; } /// /// 当前页面索引 /// int CurrentPageIndex { get; } /// /// 总页面数 /// int TotalPageCount { get; } /// /// 浮动工具栏 /// FrameworkElement FloatingToolBar { get; } /// /// 左侧面板 /// FrameworkElement LeftPanel { get; } /// /// 右侧面板 /// FrameworkElement RightPanel { get; } /// /// 顶部面板 /// FrameworkElement TopPanel { get; } /// /// 底部面板 /// FrameworkElement BottomPanel { get; } /// /// 当前绘制模式 /// 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; } /// /// 是否为深色主题 /// 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; } /// /// 是否可以撤销 /// bool CanUndo { get; } /// /// 是否可以重做 /// bool CanRedo { get; } /// /// 获取设置值 /// /// 设置类型 /// 设置键 /// 默认值 /// 设置值 T GetSetting(string key, T defaultValue = default(T)); /// /// 设置设置值 /// /// 设置类型 /// 设置键 /// 设置值 void SetSetting(string key, T value); /// /// 保存设置 /// void SaveSettings(); /// /// 加载设置 /// void LoadSettings(); /// /// 重置设置 /// void ResetSettings(); /// /// 获取所有插件 /// /// 插件列表 IList GetAllPlugins(); /// /// 根据名称获取插件 /// /// 插件名称 /// 插件实例 IInkCanvasPlugin GetPlugin(string pluginName); /// /// 启用插件 /// /// 插件名称 void EnablePlugin(string pluginName); /// /// 禁用插件 /// /// 插件名称 void DisablePlugin(string pluginName); /// /// 卸载插件 /// /// 插件名称 void UnloadPlugin(string pluginName); /// /// 显示设置窗口 /// void ShowSettingsWindow(); /// /// 隐藏设置窗口 /// void HideSettingsWindow(); /// /// 显示插件设置窗口 /// void ShowPluginSettingsWindow(); /// /// 隐藏插件设置窗口 /// void HidePluginSettingsWindow(); /// /// 显示帮助窗口 /// void ShowHelpWindow(); /// /// 隐藏帮助窗口 /// void HideHelpWindow(); /// /// 显示关于窗口 /// void ShowAboutWindow(); /// /// 隐藏关于窗口 /// void HideAboutWindow(); /// /// 显示通知 /// /// 消息内容 /// 通知类型 void ShowNotification(string message, NotificationType type = NotificationType.Info); /// /// 显示确认对话框 /// /// 消息内容 /// 标题 /// 用户选择结果 bool ShowConfirmDialog(string message, string title = "确认"); /// /// 显示输入对话框 /// /// 提示消息 /// 标题 /// 默认值 /// 用户输入内容 string ShowInputDialog(string message, string title = "输入", string defaultValue = ""); /// /// 设置全屏模式 /// /// 是否全屏 void SetFullScreen(bool isFullScreen); /// /// 设置置顶模式 /// /// 是否置顶 void SetTopMost(bool isTopMost); /// /// 设置窗口可见性 /// /// 是否可见 void SetWindowVisibility(bool isVisible); /// /// 最小化窗口 /// void MinimizeWindow(); /// /// 最大化窗口 /// void MaximizeWindow(); /// /// 还原窗口 /// void RestoreWindow(); /// /// 关闭窗口 /// void CloseWindow(); /// /// 设置窗口位置 /// /// X坐标 /// Y坐标 void SetWindowPosition(double x, double y); /// /// 设置窗口大小 /// /// 宽度 /// 高度 void SetWindowSize(double width, double height); /// /// 获取窗口位置 /// /// 窗口位置 (double x, double y) GetWindowPosition(); /// /// 获取窗口大小 /// /// 窗口大小 (double width, double height) GetWindowSize(); /// /// 清除当前画布 /// void ClearCanvas(); /// /// 清除所有画布 /// void ClearAllCanvases(); /// /// 添加新页面 /// void AddNewPage(); /// /// 删除当前页面 /// void DeleteCurrentPage(); /// /// 切换到指定页面 /// /// 页面索引 void SwitchToPage(int pageIndex); /// /// 下一页 /// void NextPage(); /// /// 上一页 /// void PreviousPage(); /// /// 设置绘制模式 /// /// 绘制模式 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); /// /// 保存画布 /// /// 文件路径 void SaveCanvas(string filePath); /// /// 加载画布 /// /// 文件路径 void LoadCanvas(string filePath); /// /// 导出为图片 /// /// 文件路径 /// 格式 void ExportAsImage(string filePath, string format); /// /// 导出为PDF /// /// 文件路径 void ExportAsPDF(string filePath); /// /// 撤销操作 /// void Undo(); /// /// 重做操作 /// void Redo(); /// /// 全选 /// void SelectAll(); /// /// 取消选择 /// void DeselectAll(); /// /// 删除选中项 /// void DeleteSelected(); /// /// 复制选中项 /// void CopySelected(); /// /// 剪切选中项 /// void CutSelected(); /// /// 粘贴 /// void Paste(); /// /// 注册事件处理器 /// /// 事件名称 /// 事件处理器 void RegisterEventHandler(string eventName, EventHandler handler); /// /// 注销事件处理器 /// /// 事件名称 /// 事件处理器 void UnregisterEventHandler(string eventName, EventHandler handler); /// /// 触发事件 /// /// 事件名称 /// 事件发送者 /// 事件参数 void TriggerEvent(string eventName, object sender, EventArgs args); /// /// 重启应用程序 /// void RestartApplication(); /// /// 退出应用程序 /// void ExitApplication(); /// /// 检查更新 /// void CheckForUpdates(); /// /// 打开帮助文档 /// void OpenHelpDocument(); /// /// 打开关于页面 /// void OpenAboutPage(); } }