using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace Ink_Canvas.Helpers.Plugins
{
///
/// 获取服务接口,统一所有获取类的方法
///
public interface IGetService
{
#region 窗口和UI获取
///
/// 获取主窗口引用
///
Window MainWindow { get; }
///
/// 获取当前画布
///
global::System.Windows.Controls.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 撤销重做状态获取
///
/// 获取是否可以撤销
///
bool CanUndo { get; }
///
/// 获取是否可以重做
///
bool CanRedo { get; }
#endregion
#region 系统设置获取
///
/// 获取系统设置
///
/// 设置类型
/// 设置键
/// 默认值
/// 设置值
T GetSetting(string key, T defaultValue = default(T));
#endregion
#region 插件信息获取
///
/// 获取所有已加载的插件
///
/// 插件列表
List GetAllPlugins();
///
/// 获取指定插件
///
/// 插件名称
/// 插件实例
IPlugin GetPlugin(string pluginName);
#endregion
}
}