123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- using FastReport.Controls;
- using FastReport.Design;
- using FastReport.Utils;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Windows.Forms;
- namespace FastReport.Forms
- {
- internal partial class DesignerOptionsForm : BaseDialogForm
- {
- private Designer designer;
- private List<DesignerOptionsPage> optionsPages;
- private List<Type> processedPluginTypes;
- private static int activePageIndex;
- private void AddPages(DesignerOptionsPage page)
- {
- if (page != null)
- {
- foreach (TabPage tab in page.tc1.TabPages)
- {
- PageControlPage panel = new PageControlPage();
- panel.Text = tab.Text;
- panel.Dock = DockStyle.Fill;
- panel.BackColor = SystemColors.Window;
- while (tab.Controls.Count > 0)
- tab.Controls[0].Parent = panel;
- pageControl1.Controls.Add(panel);
- }
- optionsPages.Add(page);
- page.Init();
- page.RestartRequiredChanged += (s, e) =>
- {
- lblRestart.Visible = page.RestartRequired;
- };
- }
- }
- private void ProcessPlugins(PluginCollection plugins)
- {
- foreach (IDesignerPlugin plugin in plugins)
- {
- if (processedPluginTypes.IndexOf(plugin.GetType()) != -1)
- continue;
- DesignerOptionsPage page = plugin.GetOptionsPage();
- AddPages(page);
- processedPluginTypes.Add(plugin.GetType());
- }
- }
- private void DesignerOptions_FormClosing(object sender, FormClosingEventArgs e)
- {
- foreach (DesignerOptionsPage page in optionsPages)
- {
- page.Done(DialogResult);
- page.Dispose();
- }
- activePageIndex = pageControl1.ActivePageIndex;
- }
- public override void Localize()
- {
- base.Localize();
- Text = Res.Get("Designer,Options");
- lblRestart.Text = Res.Get("Forms,UIOptions,Restart");
- }
- public override void UpdateDpiDependencies()
- {
- base.UpdateDpiDependencies();
- foreach (DesignerOptionsPage page in optionsPages)
- {
- page.UpdateDpiDependencies();
- }
- }
- public DesignerOptionsForm(Designer designer)
- {
- this.designer = designer;
- optionsPages = new List<DesignerOptionsPage>();
- InitializeComponent();
- Localize();
- // add default pages
- AddPages(new PluginsOptions(designer));
- processedPluginTypes = new List<Type>();
- ProcessPlugins(this.designer.Plugins);
- if (this.designer.ActiveReportTab != null)
- ProcessPlugins(this.designer.ActiveReportTab.Plugins);
- pageControl1.ActivePageIndex = activePageIndex;
- UIUtils.CheckRTL(this);
- UpdateDpiDependencies();
- }
- }
- }
|