123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- using FastReport.Controls;
- using FastReport.Utils;
- using System.Windows.Forms;
- namespace FastReport.Design.RibbonDesigner
- {
- internal class RibbonPolygonGroup : RibbonGroup
- {
- #region Fields
- private StackedPanel Panel1 { get; }
- 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);
- Visible = enabled;
- btnMove.Enabled = enabled;
- btnPointer.Enabled = enabled;
- btnAddBezier.Enabled = enabled;
- btnAddPoint.Enabled = enabled;
- btnRemovePoint.Enabled = enabled;
- if (enabled)
- {
- PolyLineObject plobj = (Designer.SelectedObjects[0] as PolyLineObject);
- selectBtn(plobj.SelectionMode);
- }
- else
- {
- btnPointer.Checked = false;
- btnMove.Checked = false;
- btnAddPoint.Checked = false;
- btnAddBezier.Checked = false;
- btnRemovePoint.Checked = false;
- }
- }
- private void selectBtn(PolyLineObject.PolygonSelectionMode index)
- {
- btnMove.Checked = index == PolyLineObject.PolygonSelectionMode.MoveAndScale;
- btnPointer.Checked = index == PolyLineObject.PolygonSelectionMode.Normal;
- btnAddPoint.Checked = index == PolyLineObject.PolygonSelectionMode.AddToLine;
- btnAddBezier.Checked = index == PolyLineObject.PolygonSelectionMode.AddBezier;
- btnRemovePoint.Checked = index == PolyLineObject.PolygonSelectionMode.Delete;
- }
- #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"));
- }
- public override void UpdateDpiDependencies()
- {
- if (State == GroupState.Collapsed)
- return;
- base.UpdateDpiDependencies();
- Panel1.UpdateDpiDependencies();
- btnMove.Image = Designer.GetImage("Ribbon.PolygonMove.png");
- btnPointer.Image = Designer.GetImage("Ribbon.PolygonSelect.png");
- }
- public override void UpdateState()
- {
- base.UpdateState();
- btnAddPoint.DisplayStyle = btnAddBezier.DisplayStyle = btnRemovePoint.DisplayStyle =
- State == GroupState.Reduced ? ToolStripItemDisplayStyle.Image : ToolStripItemDisplayStyle.ImageAndText;
- }
- #endregion
- public RibbonPolygonGroup(Designer designer) : base(designer)
- {
- Name = "PolygonGroup";
- CollapsedImageName = "Ribbon.Polygon.png";
- btnMove = new ToolbarButton("btnMove", 256, Designer.CmdPolySelectMove.Invoke);
- btnMove.MakeBig();
- btnPointer = new ToolbarButton("btnPolygonPointer", 252, Designer.CmdPolySelectPointer.Invoke);
- btnPointer.MakeBig();
- btnAddPoint = new ToolbarButton("btnPolygonAddPoint", 253, Designer.CmdPolySelectAddPoint.Invoke);
- btnAddBezier = new ToolbarButton("btnPolygonAddPointToStart", 254, Designer.CmdPolySelectBezier.Invoke);
- btnRemovePoint = new ToolbarButton("btnPolygonRemovePoint", 255, Designer.CmdPolySelectRemovePoint.Invoke);
- Panel1 = new StackedPanel() { Margin = new Padding(0, 0, 0, 2) };
- Panel1.AddItems(btnAddPoint, btnAddBezier, btnRemovePoint);
- Panel.AddItems(btnMove, btnPointer);
- Panel.AddPanels(Panel1);
- selectBtn(PolyLineObject.PolygonSelectionMode.Normal);
- Localize();
- UpdateState();
- UpdateDpiDependencies();
- }
- }
- }
|