using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
namespace XHandler.Controls.DrawCanvas
{
///
/// 绘制工具接口
///
public interface IDrawTool
{
///
/// 触摸Id,用于分辨多点触摸,0表示鼠标
///
Int32 TouchId { get; }
///
/// 是否可以处理鼠标进入事件
///
Boolean CanTouchEnter { get; }
///
/// 处理鼠标进入事件
///
/// 相对画布的点
/// 事件是否已处理
Boolean OnTouchEnter(Point point);
///
/// 是否可以处理鼠标离开事件
///
Boolean CanTouchLeave { get; }
///
/// 处理鼠标离开事件
///
/// 相对画布的点
/// 事件是否已处理
Boolean OnTouchLeave(Point point);
///
/// 是否可以处理鼠标按下事件
///
Boolean CanTouchDown { get; }
///
/// 执行鼠标按下事件
///
/// 触摸Id,用于分辨多点触摸,0表示鼠标
/// 相对画布的点
/// 事件是否已处理
Boolean OnTouchDown(Int32 touchId, Point point);
///
/// 是否可以处理鼠标移动事件
///
Boolean CanTouchMove { get; }
///
/// 执行鼠标移动事件
///
/// 相对画布的点
/// 事件是否已处理
Boolean OnTouchMove(Point point);
///
/// 是否可以处理鼠标弹起事件
///
Boolean CanTouchUp { get; }
///
/// 执行鼠标弹起事件
///
/// 相对画布的点
/// 事件是否已处理
Boolean OnTouchUp(Point point);
///
/// 是否可以处理键盘按下事件
///
Boolean CanKeyDown { get; }
///
/// 处理键盘按下事件
///
///
/// 事件是否已处理
Boolean OnKeyDown(Key key);
///
/// 是否可以处理键盘弹起事件
///
Boolean CanKeyUp { get; }
///
/// 处理键盘弹起事件
///
///
/// 事件是否已处理
Boolean OnKeyUp(Key key);
///
/// 是否结束
///
Boolean IsFinish { get; }
///
/// 画图工具类型
///
DrawToolType DrawingToolType { get; }
}
}