using FastReport.Controls; using FastReport.Utils; namespace FastReport.Design.Toolbars { internal class PolygonToolbar : DesignerToolbarBase { #region Fields public ToolbarButton btnMove; public ToolbarButton btnPointer; public ToolbarButton btnAddPoint; public ToolbarButton btnAddBezier; public ToolbarButton btnRemovePoint; #endregion #region Private Methods private void UpdateControls() { bool enabled = (Designer.SelectedObjects.Count == 1) && (Designer.SelectedObjects[0] is PolyLineObject); btnMove.Enabled = enabled; btnPointer.Enabled = enabled; btnAddBezier.Enabled = enabled; btnAddPoint.Enabled = enabled; btnRemovePoint.Enabled = enabled; if (!enabled) selectBtn(PolyLineObject.PolygonSelectionMode.MoveAndScale); else { PolyLineObject plobj = (Designer.SelectedObjects[0] as PolyLineObject); selectBtn(plobj.SelectionMode); } } private void selectBtn(PolyLineObject.PolygonSelectionMode index) { btnPointer.Checked = false; btnAddBezier.Checked = false; btnAddPoint.Checked = false; btnRemovePoint.Checked = false; btnMove.Checked = false; switch (index) { case PolyLineObject.PolygonSelectionMode.Normal: btnPointer.Checked = true; break; case PolyLineObject.PolygonSelectionMode.AddBezier: btnAddBezier.Checked = true; break; case PolyLineObject.PolygonSelectionMode.AddToLine: btnAddPoint.Checked = true; break; case PolyLineObject.PolygonSelectionMode.Delete: btnRemovePoint.Checked = true; break; case PolyLineObject.PolygonSelectionMode.MoveAndScale: btnMove.Checked = true; break; } } #endregion #region Public Methods public override void SelectionChanged() { base.SelectionChanged(); Throttle.Execute(UpdateControls); } public override void UpdateContent() { base.UpdateContent(); Throttle.Execute(UpdateControls); } public override void Localize() { base.Localize(); MyRes res = new MyRes("Designer,Toolbar,Polygon"); Text = res.Get(""); SetItemText(btnMove, res.Get("MoveScale")); SetItemText(btnPointer, res.Get("Pointer")); SetItemText(btnAddPoint, res.Get("AddPoint")); SetItemText(btnAddBezier, res.Get("Bezier")); SetItemText(btnRemovePoint, res.Get("RemovePoint")); } #endregion public PolygonToolbar(Designer designer) : base(designer) { Name = "PolygonToolbar"; btnMove = new ToolbarButton("btnMove", 256, Designer.CmdPolySelectMove.Invoke); btnPointer = new ToolbarButton("btnPolygonPointer", 252, Designer.CmdPolySelectPointer.Invoke); btnAddPoint = new ToolbarButton("btnPolygonAddPoint", 253, Designer.CmdPolySelectAddPoint.Invoke); btnAddBezier = new ToolbarButton("btnPolygonAddPointToStart", 254, Designer.CmdPolySelectBezier.Invoke); btnRemovePoint = new ToolbarButton("btnPolygonRemovePoint", 255, Designer.CmdPolySelectRemovePoint.Invoke); AddItems(btnMove, btnPointer, btnAddPoint, btnAddBezier, btnRemovePoint); selectBtn(PolyLineObject.PolygonSelectionMode.Normal); Localize(); UpdateDpiDependencies(); } } }