123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- using Resources;
- using System.Drawing;
- using System.Windows.Forms;
- namespace SmartCoalApplication.Annotation.Other
- {
- /// <summary>
- /// 平移工具(手型)
- /// </summary>
- public class PanTool : Tool
- {
- private static Cursor cursorMouseDown = new Cursor(PdnResources.GetResourceStream("Cursors.PanToolCursorMouseDown.cur"));
- private static Cursor cursorMouseUp = new Cursor(PdnResources.GetResourceStream("Cursors.PanToolCursor.cur"));
- private static bool tracking = false;
- private static Point lastMouseXY;
- private static int ignoreMouseMove = 0;
- private static ISurfaceBox surfaceBox;
- private static bool CanPan()
- {
- if (surfaceBox.GetVisibleDocumentRectangleF().Size == surfaceBox.GetDocumentSize())
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- public static void OnMouseDown(ISurfaceBox drawArea, MouseEventArgs e)
- {
- surfaceBox = drawArea;
- lastMouseXY = new Point(e.X, e.Y);
- tracking = true;
- if (CanPan())
- {
- drawArea.Cursor = cursorMouseDown;
- }
- else
- {
- drawArea.Cursor = null;
- }
- }
- public static void OnMouseMove(ISurfaceBox drawArea, MouseEventArgs e)
- {
- surfaceBox = drawArea;
- if (ignoreMouseMove > 0)
- {
- --ignoreMouseMove;
- }
- else if (tracking)
- {
- Point mouseXY = new Point(e.X, e.Y);
- Size delta = new Size(mouseXY.X - lastMouseXY.X, mouseXY.Y - lastMouseXY.Y);
- if (delta.Width != 0 || delta.Height != 0)
- {
- PointF scrollPos = drawArea.GetDocumentScrollPositionF();
- PointF newScrollPos = new PointF(scrollPos.X - delta.Width, scrollPos.Y - delta.Height);
- ++ignoreMouseMove;
- drawArea.SetDocumentScrollPositionF(newScrollPos);
- lastMouseXY = mouseXY;
- }
- }
- else
- {
- if (CanPan())
- {
- drawArea.Cursor = cursorMouseUp;
- }
- else
- {
- drawArea.Cursor = null;
- }
- }
- }
- public static void OnMouseUp(ISurfaceBox drawArea, MouseEventArgs e)
- {
- surfaceBox = drawArea;
- if (CanPan())
- {
- drawArea.Cursor = cursorMouseUp;
- }
- else
- {
- drawArea.Cursor = null;
- }
- tracking = false;
- }
- public static void OnMouseClick(ISurfaceBox drawArea, MouseEventArgs e)
- {
- }
- /// <summary>
- /// 鼠标左键双击
- /// </summary>
- /// <param name="drawArea"></param>
- /// <param name="e"></param>
- public static void OnMouseLeftDoubleClick(ISurfaceBox surfacebox, MouseEventArgs e)
- {
- }
- /// <summary>
- /// 删除按键
- /// </summary>
- /// <param name="surfacebox"></param>
- /// <param name="e"></param>
- public static void OnDelKeyDown(ISurfaceBox surfacebox, MouseEventArgs e)
- {
- }
- /// <summary>
- /// 删除划痕处理&污迹处理选择区域的痕迹
- /// </summary>
- /// <param name="surfacebox"></param>
- /// <param name="e"></param>
- public static void OnDel2KeyDown(ISurfaceBox surfacebox, MouseEventArgs e)
- {
- }
- /// <summary>
- /// 清空全部时调用该方法,将可能未绘制完的对象清空
- /// </summary>
- public static void beginWithNewObject()
- {
-
- }
- }
- }
|