using System; using FastReport.Controls; using FastReport.Utils; namespace FastReport.Design.Toolbars { internal class LayoutToolbar : DesignerToolbarBase { #region Fields public ToolbarButton btnAlignToGrid; public ToolbarButton btnLeft; public ToolbarButton btnCenter; public ToolbarButton btnRight; public ToolbarButton btnTop; public ToolbarButton btnMiddle; public ToolbarButton btnBottom; public ToolbarButton btnSameWidth; public ToolbarButton btnSameHeight; public ToolbarButton btnSameSize; public ToolbarButton btnSizeToGrid; public ToolbarButton btnSpaceHorizontally; public ToolbarButton btnIncreaseHorizontalSpacing; public ToolbarButton btnDecreaseHorizontalSpacing; public ToolbarButton btnRemoveHorizontalSpacing; public ToolbarButton btnSpaceVertically; public ToolbarButton btnIncreaseVerticalSpacing; public ToolbarButton btnDecreaseVerticalSpacing; public ToolbarButton btnRemoveVerticalSpacing; public ToolbarButton btnCenterHorizontally; public ToolbarButton btnCenterVertically; public ToolbarButton btnBringToFront; public ToolbarButton btnSendToBack; #endregion #region Private Methods private void UpdateControls() { bool oneObjSelected = Designer.SelectedComponents.Count > 0; bool threeObjSelected = Designer.SelectedComponents.Count >= 3; bool severalObjSelected = Designer.SelectedComponents.Count > 1; bool canChangeOrder = Designer.SelectedComponents.Count > 0 && Designer.SelectedComponents.First.HasFlag(Flags.CanChangeOrder); bool canMove = Designer.SelectedComponents.Count > 0 && Designer.SelectedComponents.First.HasFlag(Flags.CanMove); bool canResize = Designer.SelectedComponents.Count > 0 && Designer.SelectedComponents.First.HasFlag(Flags.CanResize); btnAlignToGrid.Enabled = oneObjSelected && canMove; btnLeft.Enabled = severalObjSelected && canMove; btnCenter.Enabled = severalObjSelected && canMove; btnRight.Enabled = severalObjSelected && canMove; btnTop.Enabled = severalObjSelected && canMove; btnMiddle.Enabled = severalObjSelected && canMove; btnBottom.Enabled = severalObjSelected && canMove; btnSameWidth.Enabled = severalObjSelected && canResize; btnSameHeight.Enabled = severalObjSelected && canResize; btnSameSize.Enabled = severalObjSelected && canResize; btnSizeToGrid.Enabled = oneObjSelected && canResize; btnSpaceHorizontally.Enabled = threeObjSelected && canMove; btnIncreaseHorizontalSpacing.Enabled = severalObjSelected && canMove; btnDecreaseHorizontalSpacing.Enabled = severalObjSelected && canMove; btnRemoveHorizontalSpacing.Enabled = severalObjSelected && canMove; btnSpaceVertically.Enabled = threeObjSelected && canMove; btnIncreaseVerticalSpacing.Enabled = severalObjSelected && canMove; btnDecreaseVerticalSpacing.Enabled = severalObjSelected && canMove; btnRemoveVerticalSpacing.Enabled = severalObjSelected && canMove; btnCenterHorizontally.Enabled = oneObjSelected && canMove; btnCenterVertically.Enabled = oneObjSelected && canMove; btnBringToFront.Enabled = canChangeOrder; btnSendToBack.Enabled = canChangeOrder; } #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,Layout"); Text = res.Get(""); SetItemText(btnAlignToGrid, res.Get("AlignToGrid")); SetItemText(btnLeft, res.Get("Left")); SetItemText(btnCenter, res.Get("Center")); SetItemText(btnRight, res.Get("Right")); SetItemText(btnTop, res.Get("Top")); SetItemText(btnMiddle, res.Get("Middle")); SetItemText(btnBottom, res.Get("Bottom")); SetItemText(btnSameWidth, res.Get("SameWidth")); SetItemText(btnSameHeight, res.Get("SameHeight")); SetItemText(btnSameSize, res.Get("SameSize")); SetItemText(btnSizeToGrid, res.Get("SizeToGrid")); SetItemText(btnSpaceHorizontally, res.Get("SpaceHorizontally")); SetItemText(btnIncreaseHorizontalSpacing, res.Get("IncreaseHorizontalSpacing")); SetItemText(btnDecreaseHorizontalSpacing, res.Get("DecreaseHorizontalSpacing")); SetItemText(btnRemoveHorizontalSpacing, res.Get("RemoveHorizontalSpacing")); SetItemText(btnSpaceVertically, res.Get("SpaceVertically")); SetItemText(btnIncreaseVerticalSpacing, res.Get("IncreaseVerticalSpacing")); SetItemText(btnDecreaseVerticalSpacing, res.Get("DecreaseVerticalSpacing")); SetItemText(btnRemoveVerticalSpacing, res.Get("RemoveVerticalSpacing")); SetItemText(btnCenterHorizontally, res.Get("CenterHorizontally")); SetItemText(btnCenterVertically, res.Get("CenterVertically")); SetItemText(btnBringToFront, res.Get("BringToFront")); SetItemText(btnSendToBack, res.Get("SendToBack")); } #endregion public LayoutToolbar(Designer designer) : base(designer) { Name = "LayoutToolbar"; btnAlignToGrid = new ToolbarButton("btnLayoutAlignToGrid", 98, Designer.SelectedComponents.AlignToGrid); btnSizeToGrid = new ToolbarButton("btnLayoutSizeToGrid", 57, Designer.SelectedComponents.SizeToGrid); btnLeft = new ToolbarButton("btnLayoutLeft", 41, Designer.SelectedComponents.AlignLeft); btnLeft.BeginGroup = true; btnCenter = new ToolbarButton("btnLayoutCenter", 42, Designer.SelectedComponents.AlignCenter); btnRight = new ToolbarButton("btnLayoutRight", 45, Designer.SelectedComponents.AlignRight); btnTop = new ToolbarButton("btnLayoutTop", 46, Designer.SelectedComponents.AlignTop); btnTop.BeginGroup = true; btnMiddle = new ToolbarButton("btnLayoutMiddle", 47, Designer.SelectedComponents.AlignMiddle); btnBottom = new ToolbarButton("btnLayoutBottom", 50, Designer.SelectedComponents.AlignBottom); btnSameWidth = new ToolbarButton("btnLayoutSameWidth", 83, Designer.SelectedComponents.SameWidth); btnSameWidth.BeginGroup = true; btnSameHeight = new ToolbarButton("btnLayoutSameHeight", 84, Designer.SelectedComponents.SameHeight); btnSameSize = new ToolbarButton("btnLayoutSameSize", 91, Designer.SelectedComponents.SameSize); btnSpaceHorizontally = new ToolbarButton("btnLayoutSpaceHorizontally", 44, Designer.SelectedComponents.SpaceHorizontally); btnSpaceHorizontally.BeginGroup = true; btnIncreaseHorizontalSpacing = new ToolbarButton("btnLayoutIncreaseHorizontalSpacing", 92, Designer.SelectedComponents.IncreaseHorizontalSpacing); btnDecreaseHorizontalSpacing = new ToolbarButton("btnLayoutDecreaseHorizontalSpacing", 93, Designer.SelectedComponents.DecreaseHorizontalSpacing); btnRemoveHorizontalSpacing = new ToolbarButton("btnLayoutRemoveHorizontalSpacing", 94, Designer.SelectedComponents.RemoveHorizontalSpacing); btnSpaceVertically = new ToolbarButton("btnLayoutSpaceVertically", 49, Designer.SelectedComponents.SpaceVertically); btnSpaceVertically.BeginGroup = true; btnIncreaseVerticalSpacing = new ToolbarButton("btnLayoutIncreaseVerticalSpacing", 95, Designer.SelectedComponents.IncreaseVerticalSpacing); btnDecreaseVerticalSpacing = new ToolbarButton("btnLayoutDecreaseVerticalSpacing", 96, Designer.SelectedComponents.DecreaseVerticalSpacing); btnRemoveVerticalSpacing = new ToolbarButton("btnLayoutRemoveVerticalSpacing", 97, Designer.SelectedComponents.RemoveVerticalSpacing); btnCenterHorizontally = new ToolbarButton("btnLayoutCenterHorizontally", 43, Designer.SelectedComponents.CenterHorizontally); btnCenterHorizontally.BeginGroup = true; btnCenterVertically = new ToolbarButton("btnLayoutCenterVertically", 48, Designer.SelectedComponents.CenterVertically); btnBringToFront = new ToolbarButton("btnLayoutBringToFront", 14, Designer.cmdBringToFront.Invoke); btnBringToFront.BeginGroup = true; btnSendToBack = new ToolbarButton("btnLayoutSendToBack", 15, Designer.cmdSendToBack.Invoke); AddItems( btnAlignToGrid, btnSizeToGrid, btnLeft, btnCenter, btnRight, btnTop, btnMiddle, btnBottom, btnSameWidth, btnSameHeight, btnSameSize, btnSpaceHorizontally, btnIncreaseHorizontalSpacing, btnDecreaseHorizontalSpacing, btnRemoveHorizontalSpacing, btnSpaceVertically, btnIncreaseVerticalSpacing, btnDecreaseVerticalSpacing, btnRemoveVerticalSpacing, btnCenterHorizontally, btnCenterVertically, btnBringToFront, btnSendToBack); Localize(); UpdateDpiDependencies(); } } }