PolygonToolbar.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using FastReport.Controls;
  2. using FastReport.Utils;
  3. namespace FastReport.Design.Toolbars
  4. {
  5. internal class PolygonToolbar : DesignerToolbarBase
  6. {
  7. #region Fields
  8. public ToolbarButton btnMove;
  9. public ToolbarButton btnPointer;
  10. public ToolbarButton btnAddPoint;
  11. public ToolbarButton btnAddBezier;
  12. public ToolbarButton btnRemovePoint;
  13. #endregion
  14. #region Private Methods
  15. private void UpdateControls()
  16. {
  17. bool enabled = (Designer.SelectedObjects.Count == 1) && (Designer.SelectedObjects[0] is PolyLineObject);
  18. btnMove.Enabled = enabled;
  19. btnPointer.Enabled = enabled;
  20. btnAddBezier.Enabled = enabled;
  21. btnAddPoint.Enabled = enabled;
  22. btnRemovePoint.Enabled = enabled;
  23. if (!enabled)
  24. selectBtn(PolyLineObject.PolygonSelectionMode.MoveAndScale);
  25. else
  26. {
  27. PolyLineObject plobj = (Designer.SelectedObjects[0] as PolyLineObject);
  28. selectBtn(plobj.SelectionMode);
  29. }
  30. }
  31. private void selectBtn(PolyLineObject.PolygonSelectionMode index)
  32. {
  33. btnPointer.Checked = false;
  34. btnAddBezier.Checked = false;
  35. btnAddPoint.Checked = false;
  36. btnRemovePoint.Checked = false;
  37. btnMove.Checked = false;
  38. switch (index)
  39. {
  40. case PolyLineObject.PolygonSelectionMode.Normal:
  41. btnPointer.Checked = true;
  42. break;
  43. case PolyLineObject.PolygonSelectionMode.AddBezier:
  44. btnAddBezier.Checked = true;
  45. break;
  46. case PolyLineObject.PolygonSelectionMode.AddToLine:
  47. btnAddPoint.Checked = true;
  48. break;
  49. case PolyLineObject.PolygonSelectionMode.Delete:
  50. btnRemovePoint.Checked = true;
  51. break;
  52. case PolyLineObject.PolygonSelectionMode.MoveAndScale:
  53. btnMove.Checked = true;
  54. break;
  55. }
  56. }
  57. #endregion
  58. #region Public Methods
  59. public override void SelectionChanged()
  60. {
  61. base.SelectionChanged();
  62. Throttle.Execute(UpdateControls);
  63. }
  64. public override void UpdateContent()
  65. {
  66. base.UpdateContent();
  67. Throttle.Execute(UpdateControls);
  68. }
  69. public override void Localize()
  70. {
  71. base.Localize();
  72. MyRes res = new MyRes("Designer,Toolbar,Polygon");
  73. Text = res.Get("");
  74. SetItemText(btnMove, res.Get("MoveScale"));
  75. SetItemText(btnPointer, res.Get("Pointer"));
  76. SetItemText(btnAddPoint, res.Get("AddPoint"));
  77. SetItemText(btnAddBezier, res.Get("Bezier"));
  78. SetItemText(btnRemovePoint, res.Get("RemovePoint"));
  79. }
  80. #endregion
  81. public PolygonToolbar(Designer designer) : base(designer)
  82. {
  83. Name = "PolygonToolbar";
  84. btnMove = new ToolbarButton("btnMove", 256, Designer.CmdPolySelectMove.Invoke);
  85. btnPointer = new ToolbarButton("btnPolygonPointer", 252, Designer.CmdPolySelectPointer.Invoke);
  86. btnAddPoint = new ToolbarButton("btnPolygonAddPoint", 253, Designer.CmdPolySelectAddPoint.Invoke);
  87. btnAddBezier = new ToolbarButton("btnPolygonAddPointToStart", 254, Designer.CmdPolySelectBezier.Invoke);
  88. btnRemovePoint = new ToolbarButton("btnPolygonRemovePoint", 255, Designer.CmdPolySelectRemovePoint.Invoke);
  89. AddItems(btnMove, btnPointer, btnAddPoint, btnAddBezier, btnRemovePoint);
  90. selectBtn(PolyLineObject.PolygonSelectionMode.Normal);
  91. Localize();
  92. UpdateDpiDependencies();
  93. }
  94. }
  95. }