123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- using FastReport.Controls;
- using FastReport.Utils;
- using System;
- using System.Drawing;
- using System.Windows.Forms;
- namespace FastReport.Design.RibbonDesigner
- {
- internal class RibbonBorderGroup : RibbonGroup
- {
- #region Fields
- private WrappedPanel Panel1 { get; }
- public ToolbarButton btnTop;
- public ToolbarButton btnBottom;
- public ToolbarButton btnLeft;
- public ToolbarButton btnRight;
- public ToolbarButton btnAll;
- public ToolbarButton btnNone;
- public ToolbarButton btnBorderProps;
- public ToolbarColorButton btnFillColor;
- public ToolbarButton btnFillStyle;
- public ToolbarColorButton btnLineColor;
- public ToolbarLineWidthButton btnWidth;
- public ToolbarLineStyleButton btnStyle;
- #endregion
- #region Private Methods
- private void UpdateControls()
- {
- bool enabled = Designer.SelectedReportComponents.Enabled;
- bool simple = Designer.SelectedReportComponents.SimpleBorder;
- bool useBorder = Designer.SelectedReportComponents.BorderEnabled;
- bool borderEnabled = enabled && !simple && useBorder;
- btnTop.Enabled = borderEnabled;
- btnBottom.Enabled = borderEnabled;
- btnLeft.Enabled = borderEnabled;
- btnRight.Enabled = borderEnabled;
- btnAll.Enabled = borderEnabled;
- btnNone.Enabled = borderEnabled;
- btnFillColor.Enabled = enabled && Designer.SelectedReportComponents.FillEnabled;
- btnFillStyle.Enabled = enabled && Designer.SelectedReportComponents.FillEnabled;
- btnLineColor.Enabled = enabled && useBorder;
- btnWidth.Enabled = enabled && useBorder;
- btnStyle.Enabled = enabled && useBorder;
- btnBorderProps.Enabled = borderEnabled;
- if (enabled)
- {
- Border border = Designer.SelectedReportComponents.First.Border;
- btnTop.Checked = (border.Lines & BorderLines.Top) != 0;
- btnBottom.Checked = (border.Lines & BorderLines.Bottom) != 0;
- btnLeft.Checked = (border.Lines & BorderLines.Left) != 0;
- btnRight.Checked = (border.Lines & BorderLines.Right) != 0;
- btnLineColor.Color = border.Color;
- if (Designer.SelectedReportComponents.First.Fill is SolidFill)
- btnFillColor.Color = (Designer.SelectedReportComponents.First.Fill as SolidFill).Color;
- btnWidth.LineWidth = border.Width;
- btnStyle.LineStyle = border.Style;
- }
- }
- private void btnTop_Click(object sender, EventArgs e)
- {
- btnTop.Checked = !btnTop.Checked;
- Designer.SelectedReportComponents.ToggleLine(BorderLines.Top, btnTop.Checked);
- }
- private void btnBottom_Click(object sender, EventArgs e)
- {
- btnBottom.Checked = !btnBottom.Checked;
- Designer.SelectedReportComponents.ToggleLine(BorderLines.Bottom, btnBottom.Checked);
- }
- private void btnLeft_Click(object sender, EventArgs e)
- {
- btnLeft.Checked = !btnLeft.Checked;
- Designer.SelectedReportComponents.ToggleLine(BorderLines.Left, btnLeft.Checked);
- }
- private void btnRight_Click(object sender, EventArgs e)
- {
- btnRight.Checked = !btnRight.Checked;
- Designer.SelectedReportComponents.ToggleLine(BorderLines.Right, btnRight.Checked);
- }
- private void btnAll_Click(object sender, EventArgs e)
- {
- Designer.SelectedReportComponents.ToggleLine(BorderLines.All, true);
- }
- private void btnNone_Click(object sender, EventArgs e)
- {
- Designer.SelectedReportComponents.ToggleLine(BorderLines.All, false);
- }
- private void btnLineColor_Click(object sender, EventArgs e)
- {
- Designer.SelectedReportComponents.SetLineColor(btnLineColor.DefaultColor);
- }
- private void btnFillColor_Click(object sender, EventArgs e)
- {
- Designer.SelectedReportComponents.SetColor(btnFillColor.DefaultColor);
- }
- private void btnFillProps_Click(object sender, EventArgs e)
- {
- Designer.SelectedReportComponents.InvokeFillEditor();
- }
- private void cbxWidth_WidthSelected(object sender, EventArgs e)
- {
- Designer.SelectedReportComponents.SetWidth(btnWidth.LineWidth);
- }
- private void cbxStyle_StyleSelected(object sender, EventArgs e)
- {
- Designer.SelectedReportComponents.SetLineStyle(btnStyle.LineStyle);
- }
- private void btnBorderProps_Click(object sender, EventArgs e)
- {
- Designer.SelectedReportComponents.InvokeBorderEditor();
- }
- #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,Border");
- Text = res.Get("");
- SetItemText(btnTop, res.Get("Top"));
- SetItemText(btnBottom, res.Get("Bottom"));
- SetItemText(btnLeft, res.Get("Left"));
- SetItemText(btnRight, res.Get("Right"));
- SetItemText(btnAll, res.Get("All"));
- SetItemText(btnNone, res.Get("None"));
- SetItemText(btnFillColor, res.Get("FillColor"));
- SetItemText(btnFillStyle, res.Get("FillStyle"));
- SetItemText(btnLineColor, res.Get("LineColor"));
- SetItemText(btnWidth, res.Get("Width"));
- SetItemText(btnStyle, res.Get("Style"));
- SetItemText(btnBorderProps, res.Get("Props"));
- }
- public override void UpdateUIStyle()
- {
- base.UpdateUIStyle();
- btnFillColor.SetStyle(Designer.UIStyle);
- btnLineColor.SetStyle(Designer.UIStyle);
- }
- public override void UpdateDpiDependencies()
- {
- if (State == GroupState.Collapsed)
- return;
- base.UpdateDpiDependencies();
- Panel1.MaxWidth = 180;
- Panel1.UpdateDpiDependencies();
- btnWidth.Size = btnStyle.Size = Designer.LogicalToDevice(new System.Drawing.Size(35, 22));
- }
- #endregion
- public RibbonBorderGroup(Designer designer) : base(designer)
- {
- Name = "BorderGroup";
- CollapsedImageName = "Ribbon.Border.png";
- Priority = GroupPriority.High;
- btnTop = new ToolbarButton("btnBorderTop", 32, btnTop_Click);
- btnBottom = new ToolbarButton("btnBorderBottom", 33, btnBottom_Click);
- btnLeft = new ToolbarButton("btnBorderLeft", 34, btnLeft_Click);
- btnRight = new ToolbarButton("btnBorderRight", 35, btnRight_Click);
- btnAll = new ToolbarButton("btnBorderAll", 36, btnAll_Click);
- btnAll.BeginGroup = true;
- btnNone = new ToolbarButton("btnBorderNone", 37, btnNone_Click);
- btnFillColor = new ToolbarColorButton("btnBorderFillColor", 38, Color.Transparent, btnFillColor_Click);
- btnFillStyle = new ToolbarButton("btnBorderFillStyle", 141, btnFillProps_Click);
- btnLineColor = new ToolbarColorButton("btnBorderLineColor", 39, Color.Black, btnLineColor_Click);
- btnLineColor.BeginGroup = true;
- btnWidth = new ToolbarLineWidthButton(designer, "btnBorderWidth", 71, cbxWidth_WidthSelected);
- btnStyle = new ToolbarLineStyleButton(designer, "btnBorderStyle", 85, cbxStyle_StyleSelected);
- btnBorderProps = new ToolbarButton("btnBorderBorderProps", 40, btnBorderProps_Click);
- Panel1 = new WrappedPanel() { VerticalAlignment = System.Windows.VerticalAlignment.Center, Margin = new Padding(0, 3, 0, 3) };
- Panel1.AddItems(
- btnTop, btnBottom, btnLeft, btnRight,
- btnAll, btnNone, btnBorderProps,
- btnFillColor, btnFillStyle, btnLineColor, btnWidth, btnStyle);
- Panel.AddPanels(Panel1);
- Localize();
- UpdateDpiDependencies();
- }
- }
- }
|