123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- using FastReport.Controls;
- using FastReport.Utils;
- using FastReport.Wizards;
- using System;
- using System.Collections.Generic;
- using System.Windows.Forms;
- namespace FastReport.Design.RibbonDesigner
- {
- internal class RibbonStandardGroup : RibbonGroup
- {
- #region Fields
- public ToolbarNewButton btnNew;
- public ToolbarOpenButton btnOpen;
- public ToolbarButton btnPreview;
- private Timer previewTimer;
- #endregion
- #region Private Methods
- private void UpdateControls()
- {
- btnNew.Enabled = Designer.cmdNew.Enabled;
- btnOpen.Enabled = Designer.cmdOpen.Enabled;
- btnPreview.Enabled = Designer.cmdPreview.Enabled;
- }
- private void btnPreview_Click(object sender, EventArgs e)
- {
- previewTimer.Start();
- }
- #endregion
- #region Protected Methods
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- previewTimer.Dispose();
- }
- base.Dispose(disposing);
- }
- #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,Menu,File");
- Text = Res.Get("Designer,Ribbon,Report");
- SetItemText(btnNew, res.Get("New"));
- SetItemText(btnOpen, res.Get("Open"));
- SetItemText(btnPreview, res.Get("Preview1"));
- }
- public override void UpdateDpiDependencies()
- {
- if (State == GroupState.Collapsed)
- return;
- base.UpdateDpiDependencies();
- btnNew.Image = Designer.GetImage("Ribbon.New.png");
- btnOpen.Image = Designer.GetImage("Ribbon.Open.png");
- btnPreview.Image = Designer.GetImage("Ribbon.Report.png");
- }
- #endregion
- public RibbonStandardGroup(Designer designer) : base(designer)
- {
- Name = "StandardGroup";
- CollapsedImageName = "Ribbon.New.png";
- Priority = GroupPriority.Medium;
- btnNew = new ToolbarNewButton(designer);
- btnNew.MakeBig();
- btnOpen = new ToolbarOpenButton(designer, "btnStdOpen", 1);
- btnOpen.MakeBig();
- btnPreview = new ToolbarButton("btnStdPreview", 3, btnPreview_Click);
- btnPreview.MakeBig(120);
- Panel.AddItems(
- btnNew, btnOpen, btnPreview);
- Localize();
- UpdateDpiDependencies();
- previewTimer = new Timer();
- previewTimer.Interval = 20;
- previewTimer.Tick += (s, e) =>
- {
- previewTimer.Stop();
- Designer.cmdPreview.Invoke(s, e);
- };
- }
- }
- internal class ToolbarNewButton : ToolStripSplitButton, IToolbarItem
- {
- public Designer Designer { get; }
- public bool BeginGroup { get; set; }
- private void btnNew_DropDownOpening(object sender, EventArgs e)
- {
- DropDown.Items.Clear();
- List<ObjectInfo> objects = new List<ObjectInfo>();
- RegisteredObjects.Objects.EnumItems(objects);
- foreach (ObjectInfo info in objects)
- {
- if (info.Object != null)
- {
- if (info.Object.IsSubclassOf(typeof(EasterEggWizard)))
- continue;
- if (info.Object.IsSubclassOf(typeof(WizardBase)) && info.Flags != 1)
- {
- var item = new ToolStripMenuItem(Res.TryGet(info.Text)) { Font = DrawUtils.DefaultFont, Tag = info };
- item.Image = Designer.GetImage(info.ImageIndex);
- DropDown.Items.Add(item);
- }
- }
- }
- }
- private void btnNew_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
- {
- DropDown.Close();
- var wizard = Activator.CreateInstance((e.ClickedItem.Tag as ObjectInfo).Object) as WizardBase;
- wizard.Run(Designer);
- }
- private void btnNew_ButtonClick(object sender, EventArgs e)
- {
- new BlankReportWizard().Run(Designer);
- }
- public ToolbarNewButton(Designer designer)
- {
- Designer = designer;
- DropDownOpening += btnNew_DropDownOpening;
- ButtonClick += btnNew_ButtonClick;
- DropDownItemClicked += btnNew_DropDownItemClicked;
- }
- }
- internal class ToolbarPreviewButton : ToolStripSplitButton, IToolbarItem
- {
- public Designer Designer { get; }
- public bool BeginGroup { get; set; }
- public ToolbarPreviewButton(Designer designer)
- {
- Designer = designer;
- }
- }
- }
|