using System;
using System.Windows.Media;
namespace Ink_Canvas.Helpers.Plugins
{
///
/// 操作服务接口,统一所有执行操作相关的方法
///
public interface IActionService
{
#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();
#endregion
#region 选择操作
///
/// 全选
///
void SelectAll();
///
/// 取消选择
///
void DeselectAll();
///
/// 删除选中内容
///
void DeleteSelected();
///
/// 复制选中内容
///
void CopySelected();
///
/// 剪切选中内容
///
void CutSelected();
///
/// 粘贴内容
///
void Paste();
#endregion
#region 系统设置操作
///
/// 设置系统设置
///
/// 设置类型
/// 设置键
/// 设置值
void SetSetting(string key, T value);
///
/// 保存设置到文件
///
void SaveSettings();
///
/// 从文件加载设置
///
void LoadSettings();
///
/// 重置设置为默认值
///
void ResetSettings();
#endregion
#region 插件管理操作
///
/// 启用插件
///
/// 插件名称
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
#region 应用程序操作
///
/// 重启应用程序
///
void RestartApplication();
///
/// 退出应用程序
///
void ExitApplication();
///
/// 检查更新
///
void CheckForUpdates();
///
/// 打开帮助文档
///
void OpenHelpDocument();
///
/// 打开关于页面
///
void OpenAboutPage();
#endregion
}
}