PolygonToolbar.cs 4.5 KB

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