123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- using System.Windows.Forms;
- using FastReport.Controls;
- using FastReport.Utils;
- namespace FastReport.Design.RibbonDesigner
- {
- internal class RibbonLayoutGroup : RibbonGroup
- {
- #region Fields
- private WrappedPanel Panel1 { get; }
- private StackedPanel Panel2 { get; }
- private WrappedPanel alignPanel { get; }
- private WrappedPanel sizePanel { get; }
- private WrappedPanel intervalPanel { get; }
- private ToolbarLabel lblAlign;
- private ToolbarLabel lblSize;
- private ToolbarLabel lblInterval;
- 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;
- public ToolbarButton btnGroup;
- public ToolbarButton btnUngroup;
- #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;
- btnGroup.Enabled = Designer.cmdGroup.Enabled;
- btnUngroup.Enabled = Designer.cmdUngroup.Enabled;
- }
- #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"));
- res = new MyRes("Designer,Toolbar,Standard");
- SetItemText(btnGroup, res.Get("Group"));
- SetItemText(btnUngroup, res.Get("Ungroup"));
- res = new MyRes("Designer,Ribbon");
- lblAlign.Text = res.Get("Alignment");
- lblSize.Text = res.Get("Size");
- lblInterval.Text = res.Get("Spacing");
- }
- public override void UpdateDpiDependencies()
- {
- if (State == GroupState.Collapsed)
- return;
- base.UpdateDpiDependencies();
- Panel1.MaxWidth = 50;
- Panel1.UpdateDpiDependencies();
- sizePanel.MaxWidth = 80;
- sizePanel.UpdateDpiDependencies();
- alignPanel.MaxWidth = 110;
- alignPanel.UpdateDpiDependencies();
- intervalPanel.MaxWidth = 100;
- intervalPanel.UpdateDpiDependencies();
- }
- public override void UpdateState()
- {
- // do nothing
- }
- #endregion
- public RibbonLayoutGroup(Designer designer) : base(designer)
- {
- Name = "LayoutToolbar";
- CollapsedImageName = "Ribbon.AlignMenu.png";
- CollapsedButton.MakeBig(100);
- btnAlignToGrid = new ToolbarButton("btnLayoutAlignToGrid", 98, Designer.SelectedComponents.AlignToGrid);
- btnSizeToGrid = new ToolbarButton("btnLayoutSizeToGrid", 57, Designer.SelectedComponents.SizeToGrid);
- btnLeft = new ToolbarButton("btnLayoutLeft", 41, Designer.SelectedComponents.AlignLeft);
- btnCenter = new ToolbarButton("btnLayoutCenter", 42, Designer.SelectedComponents.AlignCenter);
- btnRight = new ToolbarButton("btnLayoutRight", 45, Designer.SelectedComponents.AlignRight);
- btnTop = new ToolbarButton("btnLayoutTop", 46, Designer.SelectedComponents.AlignTop);
- btnMiddle = new ToolbarButton("btnLayoutMiddle", 47, Designer.SelectedComponents.AlignMiddle);
- btnBottom = new ToolbarButton("btnLayoutBottom", 50, Designer.SelectedComponents.AlignBottom);
- btnSameWidth = new ToolbarButton("btnLayoutSameWidth", 83, Designer.SelectedComponents.SameWidth);
- btnSameHeight = new ToolbarButton("btnLayoutSameHeight", 84, Designer.SelectedComponents.SameHeight);
- btnSameSize = new ToolbarButton("btnLayoutSameSize", 91, Designer.SelectedComponents.SameSize);
- btnSpaceHorizontally = new ToolbarButton("btnLayoutSpaceHorizontally", 44, Designer.SelectedComponents.SpaceHorizontally);
- 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);
- 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);
- btnCenterVertically.BeginGroup = true;
- btnBringToFront = new ToolbarButton("btnLayoutBringToFront", 14, Designer.cmdBringToFront.Invoke);
- btnSendToBack = new ToolbarButton("btnLayoutSendToBack", 15, Designer.cmdSendToBack.Invoke);
- btnGroup = new ToolbarButton("btnStdGroup", 17, Designer.cmdGroup.Invoke);
- btnUngroup = new ToolbarButton("btnStdUngroup", 16, Designer.cmdUngroup.Invoke);
- Panel1 = new WrappedPanel() { Margin = new Padding(0, 0, 0, 2) };
- Panel1.AddItems(
- btnAlignToGrid, btnSizeToGrid,
- btnBringToFront, btnSendToBack,
- btnGroup, btnUngroup);
- Panel2 = new StackedPanel() { Vertical = false };
- var panel = new StackedPanel();
- lblSize = new ToolbarLabel();
- sizePanel = new WrappedPanel() { Margin = new Padding(0, 3, 0, 3) };
- sizePanel.AddItems(
- btnSameWidth, btnSameHeight, btnSameSize);
- panel.Controls.Add(lblSize);
- panel.Controls.Add(sizePanel);
- Panel2.Controls.Add(panel);
- Panel2.Controls.Add(new ToolStripSeparator(true));
- panel = new StackedPanel();
- lblAlign = new ToolbarLabel();
- alignPanel = new WrappedPanel() { Margin = new Padding(0, 3, 0, 3) };
- alignPanel.AddItems(
- btnLeft, btnCenter, btnRight, btnCenterHorizontally,
- btnTop, btnMiddle, btnBottom, btnCenterVertically);
- panel.Controls.Add(lblAlign);
- panel.Controls.Add(alignPanel);
- Panel2.Controls.Add(panel);
- Panel2.Controls.Add(new ToolStripSeparator(true));
- panel = new StackedPanel();
- lblInterval = new ToolbarLabel();
- intervalPanel = new WrappedPanel() { Margin = new Padding(0, 3, 0, 3) };
- intervalPanel.AddItems(
- btnSpaceHorizontally, btnIncreaseHorizontalSpacing, btnDecreaseHorizontalSpacing, btnRemoveHorizontalSpacing,
- btnSpaceVertically, btnIncreaseVerticalSpacing, btnDecreaseVerticalSpacing, btnRemoveVerticalSpacing);
- panel.Controls.Add(lblInterval);
- panel.Controls.Add(intervalPanel);
- Panel2.Controls.Add(panel);
- Panel.Controls.AddRange(new Control[]
- {
- Panel1, new ToolStripSeparator(true), Panel2
- });
- Panel.CollapseTo(CollapsedButton);
- Localize();
- UpdateDpiDependencies();
- }
- }
- }
|