123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- using FastReport.Controls;
- using FastReport.Design.ToolWindows;
- using FastReport.Utils;
- using System;
- using System.Windows.Forms;
- namespace FastReport.Design
- {
- public partial class Designer
- {
- private FRTabControl tabs;
- private Splitter vrSplitter;
- private Splitter vlSplitter;
- private Panel workArea;
- private Splitter hSplitter;
- private FRSideControl rSideControl;
- private FRSideControl lSideControl;
- public bool MessageWindowEnabled
- {
- get
- {
- return messagesWindow.Visible;
- }
- set
- {
- messagesWindow.Visible = value;
- hSplitter.Visible = value;
- }
- }
- private void UpdateUIStyleInternal()
- {
- var table = UIStyleUtils.GetColorTable(UIStyle);
- tabs.Style = table.Workspace;
- rSideControl.Style = lSideControl.Style = UIStyle;
- hSplitter.BackColor = vrSplitter.BackColor = vlSplitter.BackColor = table.Workspace.SplitterBackColor;
- }
- // init global designer plugins
- private void InitPluginsInternal()
- {
- SuspendLayout();
- InitPlugins();
- ResumeLayout();
- }
- private void UpdateMdiMode()
- {
- tabs.ShowTabs = mdiMode;
- if (mdiMode)
- AddStartPageTab();
- else if (StartPage != null)
- StartPage.Close();
- }
- private void FTabs_SelectedTabChanged(object sender, EventArgs e)
- {
- if (tabs.SelectedTab is DocumentWindow)
- {
- if (tabs.SelectedTab is StartPageTab)
- ActiveReportTab = null;
- else
- ActiveReportTab = tabs.SelectedTab as ReportTab;
- }
- }
- private void FTabs_TabClosed(object sender, EventArgs e)
- {
- var tab = sender as DocumentWindow;
- if (tab != null)
- {
- if (!CloseDocument(tab))
- return;
- }
- if (Documents.Count > 0)
- {
- Documents[Documents.Count - 1].Activate();
- }
- else
- {
- ClearSelection();
- }
- }
- private void DisableFloatingBars()
- {
- }
- private void InitRightToLeft()
- {
- #if AVALONIA
- Avalonia.Threading.Dispatcher.UIThread.InvokeAsync(() =>
- {
- RightToLeft = Config.RightToLeft ? RightToLeft.Yes : RightToLeft.No;
- });
- #else
- RightToLeft = Config.RightToLeft ? RightToLeft.Yes : RightToLeft.No;
- #endif
- }
- private void InitTools()
- {
- // make default layout
- workArea = new Panel();
- workArea.Dock = DockStyle.Fill;
- Controls.Add(workArea);
- tabs = new FRTabControl();
- tabs.Dock = DockStyle.Fill;
- tabs.TabOrientation = TabOrientation.Top;
- tabs.ShowCaption = false;
- tabs.SelectedTabChanged += FTabs_SelectedTabChanged;
- tabs.TabClosed += FTabs_TabClosed;
- objectsToolbar = new ObjectsToolbar(this);
- dataWindow = new DictionaryWindow(this);
- propertiesWindow = new PropertiesWindow(this);
- reportTreeWindow = new ReportTreeWindow(this);
- messagesWindow = new MessagesWindow(this);
- vrSplitter = new Splitter();
- vrSplitter.Dock = DockStyle.Right;
- Controls.Add(vrSplitter);
- rSideControl = new FRSideControl(this) { Name = "RightSideControl" };
- rSideControl.Dock = DockStyle.Right;
- rSideControl.Width = this.LogicalToDevice(280);
- rSideControl.TopPanel.Height = this.LogicalToDevice(350);
- rSideControl.LayoutChanged += (s, e) =>
- {
- rSideControl.Visible = vrSplitter.Visible = !rSideControl.IsEmpty;
- };
- Controls.Add(rSideControl);
- vlSplitter = new Splitter();
- vlSplitter.Dock = DockStyle.Left;
- Controls.Add(vlSplitter);
- lSideControl = new FRSideControl(this) { Name = "LeftSideControl" };
- lSideControl.Dock = DockStyle.Left;
- lSideControl.Width = this.LogicalToDevice(230);
- lSideControl.TopPanel.Height = this.LogicalToDevice(350);
- lSideControl.LayoutChanged += (s, e) =>
- {
- lSideControl.Visible = vlSplitter.Visible = !lSideControl.IsEmpty;
- };
- Controls.Add(lSideControl);
- hSplitter = new Splitter();
- hSplitter.Dock = DockStyle.Bottom;
- messagesWindow.Dock = DockStyle.Bottom;
- MessageWindowEnabled = false;
- rSideControl.OtherSideControl = lSideControl;
- lSideControl.OtherSideControl = rSideControl;
- lSideControl.AddToTopPanel(dataWindow);
- lSideControl.AddToTopPanel(reportTreeWindow);
- rSideControl.AddToBottomPanel(propertiesWindow);
- rSideControl.RefreshLayout();
- lSideControl.RefreshLayout();
- workArea.Controls.AddRange(new Control[] { tabs, hSplitter, messagesWindow });
- }
- private void UpdateDpiDependenciesInternal()
- {
- rSideControl.UpdateDpiDependencies();
- lSideControl.UpdateDpiDependencies();
- vrSplitter.Width = vlSplitter.Width = hSplitter.Height = this.LogicalToDevice(3);
- tabs.Height = this.LogicalToDevice(25);
- }
- private void LocalizeInternal()
- {
- rSideControl.UpdateText();
- lSideControl.UpdateText();
- }
- private void SaveDockState(XmlItem root)
- {
- rSideControl.SaveState();
- lSideControl.SaveState();
- var storage = new ControlStorageService(this, "Designer,MessagesWindow");
- storage.SetDip("Height", messagesWindow.Height);
- storage.SetBool("Visible", MessageWindowEnabled);
- }
- private void RestoreDockState(XmlItem root)
- {
- var storage = new ControlStorageService(this, "Designer,MessagesWindow");
- messagesWindow.Height = storage.GetDip("Height", 140, 50, 400);
- MessageWindowEnabled = storage.GetBool("Visible", false);
- rSideControl.RestoreState();
- lSideControl.RestoreState();
- }
- }
- }
|