123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- using FastReport.Controls;
- using FastReport.Utils;
- using System;
- using System.ComponentModel;
- using System.Windows.Forms;
- namespace FastReport.Design.RibbonDesigner
- {
- internal class RibbonStyleGroup : RibbonGroup
- {
- #region Fields
- public ToolbarButton btnHighlight;
- public ToolbarStyleButton btnStyles;
- #endregion
- #region Private Methods
- private void UpdateControls()
- {
- btnHighlight.Enabled = Designer.SelectedTextObjects.Enabled;
- }
-
- private void btnHighlight_Click(object sender, EventArgs e)
- {
- Designer.SelectedTextObjects.InvokeHighlightEditor();
- }
- #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();
- Text = Res.Get("Designer,Toolbar,Style");
- SetItemText(btnHighlight, Res.Get("Designer,Toolbar,Text,Highlight"));
- SetItemText(btnStyles, Res.Get("Designer,Menu,Report,Styles"));
- }
- public override void UpdateDpiDependencies()
- {
- if (State == GroupState.Collapsed)
- return;
- base.UpdateDpiDependencies();
- btnHighlight.Image = Designer.GetImage("Ribbon.Highlight.png");
- btnStyles.Image = Designer.GetImage("Ribbon.Styles.png");
- }
- #endregion
- public RibbonStyleGroup(Designer designer) : base(designer)
- {
- Name = "EditGroup";
- CollapsedImageName = "Ribbon.Styles.png";
- btnHighlight = new ToolbarButton("btnStyleHighlight", 5, btnHighlight_Click);
- btnHighlight.MakeBig();
- btnStyles = new ToolbarStyleButton(designer);
- btnStyles.MakeBig();
- Panel.AddItems(btnHighlight, btnStyles);
- Localize();
- UpdateDpiDependencies();
- }
- }
-
- internal class ToolbarStyleButton : ToolStripSplitButton, IToolbarItem
- {
- public Designer Designer { get; }
- public bool BeginGroup { get; set; }
- private void btnStyles_DropDownOpening(object sender, CancelEventArgs e)
- {
- if (!Designer.SelectedReportComponents.Enabled)
- {
- e.Cancel = true;
- return;
- }
- var lb = new StyleListBox() { BorderStyle = BorderStyle.None };
- lb.Styles = Designer.ActiveReport.Styles;
- lb.Style = Designer.SelectedReportComponents.First.Style;
- lb.StyleSelected += (s, e) =>
- {
- DropDown.Close();
- Designer.SelectedReportComponents.SetStyle(lb.Style);
- };
- DropDown.Items.Clear();
- DropDown.Items.Add(new ToolStripControlHost(lb));
- lb.ItemHeight = Designer.LogicalToDevice(30);
- lb.Size = Designer.LogicalToDevice(new System.Drawing.Size(150, 300));
- }
- public ToolbarStyleButton(Designer designer)
- {
- Designer = designer;
- DropDown = new ToolStripDropDown();
- DropDown.Opening += btnStyles_DropDownOpening;
- DropDown.Opened += (s, e) =>
- {
- OnDropDownOpened(e);
- IsDropDownOpen = true;
- };
- DropDown.Closed += (s, e) =>
- {
- OnDropDownClosed(e);
- IsDropDownOpen = false;
- };
- ButtonClick += (s, e) => Designer.cmdReportStyles.Invoke(this, e);
- }
- }
- }
|