ImageCutTool.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using PaintDotNet.Annotation.Enum;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. namespace PaintDotNet.Annotation.Label
  6. {
  7. /// <summary>
  8. /// 编辑->图片裁剪
  9. /// </summary>
  10. public class ImageCutTool : ToolObject
  11. {
  12. /// <summary>
  13. /// Left nouse button is pressed
  14. /// </summary>
  15. /// <param name="drawArea"></param>
  16. /// <param name="e"></param>
  17. public static void OnMouseDown(ISurfaceBox surfaceBox, MouseEventArgs e)
  18. {
  19. //如当前已存在其他裁剪框,则先删除
  20. if (surfaceBox.GraphicsList.IsExsitSpecificObject(DrawToolType.ImageCut))
  21. {
  22. List<DrawObject> objList = surfaceBox.GraphicsList.GetDrawToolTypeList(DrawToolType.ImageCut);
  23. for (int i = 0; i< objList.Count; i++)
  24. {
  25. surfaceBox.GraphicsList.RemoveObj(objList[i]);
  26. }
  27. }
  28. Point pointscroll = GetEventPointInArea(surfaceBox, e.Location);
  29. ImageCutDraw rectangle = new ImageCutDraw(pointscroll.X, pointscroll.Y, 1, 1);
  30. rectangle.ISurfaceBox = surfaceBox;
  31. AddNewObject(surfaceBox, rectangle);
  32. }
  33. /// <summary>
  34. /// 鼠标移动,需要进行绘制
  35. /// </summary>
  36. /// <param name="drawArea"></param>
  37. /// <param name="e"></param>
  38. public static void OnMouseMove(ISurfaceBox surfaceBox, MouseEventArgs e)
  39. {
  40. Point pointscroll = GetEventPointInArea(surfaceBox, e.Location);
  41. if (e.Button == MouseButtons.Left)
  42. {
  43. if (surfaceBox.GraphicsList.Count > 0)
  44. {
  45. surfaceBox.GraphicsList[0].MoveHandleTo(pointscroll, 5);
  46. surfaceBox.Refresh();
  47. surfaceBox.GraphicsList.Dirty = true;
  48. }
  49. }
  50. }
  51. /// <summary>
  52. /// 覆盖父类的鼠标抬起事件,什么都不做
  53. /// </summary>
  54. /// <param name="drawArea"></param>
  55. /// <param name="e"></param>
  56. public static void OnMouseUp(ISurfaceBox drawArea, MouseEventArgs e)
  57. {
  58. if (e.Button == MouseButtons.Left)
  59. {
  60. drawArea.ActiveTool = DrawToolType.Pointer;
  61. }
  62. }
  63. public static void OnMouseClick(ISurfaceBox drawArea, MouseEventArgs e)
  64. {
  65. }
  66. /// <summary>
  67. /// 鼠标左键双击
  68. /// </summary>
  69. /// <param name="drawArea"></param>
  70. /// <param name="e"></param>
  71. public static void OnMouseLeftDoubleClick(ISurfaceBox surfacebox, MouseEventArgs e)
  72. {
  73. }
  74. /// <summary>
  75. /// 删除按键
  76. /// </summary>
  77. /// <param name="surfacebox"></param>
  78. /// <param name="e"></param>
  79. public static void OnDelKeyDown(ISurfaceBox surfacebox, MouseEventArgs e)
  80. {
  81. }
  82. /// <summary>
  83. /// 删除划痕处理&污迹处理选择区域的痕迹
  84. /// </summary>
  85. /// <param name="surfacebox"></param>
  86. /// <param name="e"></param>
  87. public static void OnDel2KeyDown(ISurfaceBox surfacebox, MouseEventArgs e)
  88. {
  89. }
  90. public static void beginWithNewObject()
  91. {
  92. }
  93. }
  94. }