123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- using PaintDotNet.Annotation.Command;
- using PaintDotNet.Annotation.Enum;
- using System.Windows.Forms;
- namespace PaintDotNet.Annotation
- {
- /// <summary>
- /// 工具
- /// </summary>
- public abstract class ToolObject : Tool
- {
- private Cursor cursor;
- /// <summary>
- /// Tool cursor.
- /// </summary>
- protected Cursor Cursor
- {
- get
- {
- return cursor;
- }
- set
- {
- cursor = value;
- }
- }
- /// <summary>
- /// Left mouse is released.
- /// New object is created and resized.
- /// </summary>
- /// <param name="drawArea"></param>
- /// <param name="e"></param>
- public static void OnMouseUpTwo(ISurfaceBox surfacebox, MouseEventArgs e)
- {
- // TODO ZYH 这里需要处理连续绘制
- //surfacebox.ActiveTool = DrawToolType.Pointer;
- if (surfacebox.GraphicsList!=null && surfacebox.GraphicsList.Count>0)
- {
- //重新处理外接矩形,否则会有负值
- surfacebox.GraphicsList[0].Normalize();
- surfacebox.AddCommandToHistory(new CommandAdd(surfacebox.GraphicsList[0]));
- //surfacebox.Capture = false;
- surfacebox.Refresh();
- surfacebox.GraphicsList.Dirty = true;
- }
- OnMouseUpOne(surfacebox, e);
- }
- /// <summary>
- /// Add new object to draw area.
- /// Function is called when user left-clicks draw area,
- /// and one of ToolObject-derived tools is active.
- /// </summary>
- /// <param name="drawArea"></param>
- /// <param name="o"></param>
- protected static void AddNewObject(ISurfaceBox drawArea, DrawObject o)
- {
- drawArea.GraphicsList.UnselectAll();
- o.Selected = true;
- drawArea.GraphicsList.Add(o);
- drawArea.GraphicsList.OnSelectChanged();
- //drawArea.Capture = true;
- drawArea.Refresh();
- drawArea.SetDirty();
- }
- protected static void RemoveOldObject(ISurfaceBox drawArea, DrawObject o)
- {
- drawArea.GraphicsList.RemoveObj(o);
- drawArea.GraphicsList.OnSelectChanged();
- drawArea.ResetUndoManager();
- drawArea.Refresh();
- drawArea.SetDirty();
- }
- protected static void AddNewObjectForView(ISurfaceBox drawArea, DrawObject o)
- {
- drawArea.GraphicsList.UnselectAll();
- o.Selected = true;
- drawArea.GraphicsList.Add(o);
- //drawArea.GraphicsList.OnSelectChanged();
- //drawArea.Capture = true;
- drawArea.Refresh();
- drawArea.SetDirty();
- }
- public static void OnMouseNotLeftDown(ISurfaceBox surfacebox, DrawObject o)
- {
- if (surfacebox.ContinuousDrawingLabel() && o == null)
- {
- surfacebox.ActiveTool = DrawToolType.Pointer;
- surfacebox.SetContinuousDrawingLabel(false);
- }
- }
- }
- }
|