123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336 |
- using FastReport.Design.ToolWindows;
- using FastReport.DevComponents.DotNetBar;
- using FastReport.Utils;
- using System;
- using System.Drawing;
- using System.Windows.Forms;
- namespace FastReport.Design
- {
- public partial class Designer
- {
- private DotNetBarManager dotNetBarManager;
- private DockSite bottomDockSite;
- private DockSite leftDockSite;
- private DockSite rightDockSite;
- private DockSite topDockSite;
- private DockSite tbLeftDockSite;
- private DockSite tbRightDockSite;
- private DockSite tbTopDockSite;
- private DockSite tbBottomDockSite;
- private FastReport.DevComponents.DotNetBar.TabControl tabs;
- internal DotNetBarManager DotNetBarManager
- {
- get { return dotNetBarManager; }
- }
- private void UpdateDpiDependenciesInternal()
- {
- }
- private void LocalizeInternal()
- {
- }
- private void UpdateUIStyleInternal()
- {
- switch (UIStyle)
- {
- case UIStyle.Office2003:
- case UIStyle.Office2007Blue:
- case UIStyle.Office2010Blue:
- StyleManager.ChangeStyle(eStyle.Office2010Blue, Color.Empty);
- break;
- case UIStyle.Office2007Silver:
- case UIStyle.Office2010Silver:
- StyleManager.ChangeStyle(eStyle.Office2010Silver, Color.Empty);
- break;
- case UIStyle.Office2007Black:
- case UIStyle.Office2010Black:
- StyleManager.ChangeStyle(eStyle.Office2010Black, Color.Empty);
- break;
- case UIStyle.Office2013:
- StyleManager.ChangeStyle(eStyle.Office2013, Color.Empty);
- break;
- case UIStyle.VisualStudio2005:
- case UIStyle.VisualStudio2010:
- StyleManager.ChangeStyle(eStyle.VisualStudio2010Blue, Color.Empty);
- break;
- case UIStyle.VisualStudio2012Light:
- StyleManager.ChangeStyle(eStyle.VisualStudio2012Light, Color.Empty);
- break;
- case UIStyle.VistaGlass:
- StyleManager.ChangeStyle(eStyle.Windows7Blue, Color.Empty);
- break;
- }
- dotNetBarManager.Style = UIStyleUtils.GetDotNetBarStyle(UIStyle);
- }
- private void InitPluginsInternal()
- {
- SuspendLayout();
- InitPlugins();
- foreach (Type pluginType in DesignerPlugins.Plugins)
- {
- IDesignerPlugin plugin = plugins.Add(pluginType);
- if (plugin is ToolWindowBase)
- (plugin as ToolWindowBase).DoDefaultDock();
- }
- ResumeLayout();
- }
- private void UpdateMdiMode()
- {
- tabs.TabsVisible = mdiMode;
- if (mdiMode)
- AddStartPageTab();
- else if (StartPage != null)
- StartPage.Close();
- }
- private void FTabs_SelectedTabChanged(object sender, TabStripTabChangedEventArgs e)
- {
- if (e.NewTab is DocumentWindow)
- {
- if (e.NewTab is StartPageTab)
- ActiveReportTab = null;
- else
- ActiveReportTab = e.NewTab as ReportTab;
- }
- }
- private void FTabs_TabItemClose(object sender, TabStripActionEventArgs e)
- {
- if (tabs.SelectedTab is ReportTab)
- {
- ReportTab tab = tabs.SelectedTab as ReportTab;
- if (!CloseDocument(tab))
- {
- return;
- }
- }
- else if (tabs.SelectedTab is StartPageTab)
- {
- StartPageTab tab = tabs.SelectedTab as StartPageTab;
- if (!CloseDocument(tab))
- {
- return;
- }
- }
- if (Documents.Count > 0)
- {
- Documents[Documents.Count - 1].Activate();
- }
- else
- {
- ClearSelection();
- }
- }
- private void InitRightToLeft()
- {
- RightToLeft = Config.RightToLeft ? RightToLeft.Yes : RightToLeft.No;
- objectsToolbar.DockSide = Config.RightToLeft ? eDockSide.Right : eDockSide.Left;
- }
- private void InitTools()
- {
- BarUtilities.UseTextRenderer = true;
- // docking
- tabs = new FastReport.DevComponents.DotNetBar.TabControl();
- tabs.Dock = DockStyle.Fill;
- tabs.TabLayoutType = eTabLayoutType.FixedWithNavigationBox;
- tabs.AutoHideSystemBox = false;
- tabs.CloseButtonOnTabsVisible = true;
- tabs.ControlTabNavigationEnabled = false;
- tabs.SelectedTabChanged += new TabStrip.SelectedTabChangedEventHandler(FTabs_SelectedTabChanged);
- tabs.TabItemClose += new TabStrip.UserActionEventHandler(FTabs_TabItemClose);
- Controls.Add(tabs);
- dotNetBarManager = new DotNetBarManager();
- leftDockSite = new DockSite();
- rightDockSite = new DockSite();
- topDockSite = new DockSite();
- bottomDockSite = new DockSite();
- tbLeftDockSite = new DockSite();
- tbRightDockSite = new DockSite();
- tbTopDockSite = new DockSite();
- tbBottomDockSite = new DockSite();
- //
- // dotNetBarManager
- //
- dotNetBarManager.AutoDispatchShortcuts.Add(eShortcut.F1);
- dotNetBarManager.AutoDispatchShortcuts.Add(eShortcut.CtrlC);
- dotNetBarManager.AutoDispatchShortcuts.Add(eShortcut.CtrlA);
- dotNetBarManager.AutoDispatchShortcuts.Add(eShortcut.CtrlV);
- dotNetBarManager.AutoDispatchShortcuts.Add(eShortcut.CtrlX);
- dotNetBarManager.AutoDispatchShortcuts.Add(eShortcut.CtrlZ);
- dotNetBarManager.AutoDispatchShortcuts.Add(eShortcut.CtrlY);
- dotNetBarManager.AutoDispatchShortcuts.Add(eShortcut.Del);
- dotNetBarManager.AutoDispatchShortcuts.Add(eShortcut.Ins);
- dotNetBarManager.DefinitionName = "";
- dotNetBarManager.EnableFullSizeDock = false;
- dotNetBarManager.ShowCustomizeContextMenu = false;
- dotNetBarManager.LeftDockSite = leftDockSite;
- dotNetBarManager.RightDockSite = rightDockSite;
- dotNetBarManager.TopDockSite = topDockSite;
- dotNetBarManager.BottomDockSite = bottomDockSite;
- dotNetBarManager.ToolbarLeftDockSite = tbLeftDockSite;
- dotNetBarManager.ToolbarRightDockSite = tbRightDockSite;
- dotNetBarManager.ToolbarTopDockSite = tbTopDockSite;
- dotNetBarManager.ToolbarBottomDockSite = tbBottomDockSite;
- //
- // leftDockSite
- //
- leftDockSite.Dock = DockStyle.Left;
- leftDockSite.DocumentDockContainer = new DocumentDockContainer();
- leftDockSite.Name = "leftDockSite";
- //
- // rightDockSite
- //
- rightDockSite.Dock = DockStyle.Right;
- rightDockSite.DocumentDockContainer = new DocumentDockContainer();
- rightDockSite.Name = "rightDockSite";
- //
- // topDockSite
- //
- topDockSite.Dock = DockStyle.Top;
- topDockSite.DocumentDockContainer = new DocumentDockContainer();
- topDockSite.Name = "topDockSite";
- //
- // bottomDockSite
- //
- bottomDockSite.Dock = DockStyle.Bottom;
- bottomDockSite.DocumentDockContainer = new DocumentDockContainer();
- bottomDockSite.Name = "bottomDockSite";
- //
- // tbLeftDockSite
- //
- tbLeftDockSite.Dock = DockStyle.Left;
- tbLeftDockSite.Name = "tbLeftDockSite";
- //
- // tbRightDockSite
- //
- tbRightDockSite.Dock = DockStyle.Right;
- tbRightDockSite.Name = "tbRightDockSite";
- //
- // tbTopDockSite
- //
- tbTopDockSite.Dock = DockStyle.Top;
- tbTopDockSite.Name = "tbTopDockSite";
- //
- // tbBottomDockSite
- //
- tbBottomDockSite.Dock = DockStyle.Bottom;
- tbBottomDockSite.Name = "tbBottomDockSite";
- Controls.Add(leftDockSite);
- Controls.Add(rightDockSite);
- Controls.Add(topDockSite);
- Controls.Add(bottomDockSite);
- Controls.Add(tbLeftDockSite);
- Controls.Add(tbRightDockSite);
- Controls.Add(tbTopDockSite);
- Controls.Add(tbBottomDockSite);
- // create tools
- objectsToolbar = new ObjectsToolbar(this);
- dataWindow = new DictionaryWindow(this);
- propertiesWindow = new PropertiesWindow(this);
- reportTreeWindow = new ReportTreeWindow(this);
- messagesWindow = new MessagesWindow(this);
- // do default layout
- dataWindow.DockTo(rightDockSite);
- reportTreeWindow.DockTo(dataWindow);
- propertiesWindow.DockTo(rightDockSite, dataWindow, eDockSide.Bottom);
- messagesWindow.DockTo(bottomDockSite);
- messagesWindow.Bar.AutoHide = true;
- messagesWindow.Hide();
- rightDockSite.Width = 250;
- leftDockSite.MouseUp += dockSite_MouseUp;
- rightDockSite.MouseUp += dockSite_MouseUp;
- topDockSite.MouseUp += dockSite_MouseUp;
- bottomDockSite.MouseUp += dockSite_MouseUp;
- dotNetBarManager.AutoHideChanged += LayoutChanged;
- dotNetBarManager.BarDock += LayoutChanged;
- dataWindow.VisibleChanged += LayoutChanged;
- propertiesWindow.VisibleChanged += LayoutChanged;
- reportTreeWindow.VisibleChanged += LayoutChanged;
- messagesWindow.VisibleChanged += LayoutChanged;
- }
- /// <inheritdoc/>
- protected override void OnParentChanged(EventArgs e)
- {
- base.OnParentChanged(e);
- dotNetBarManager.ParentForm = FindForm();
- if (DesignMode)
- DisableFloatingBars();
- }
- private void SaveDockState(XmlItem root)
- {
- XmlItem xi = root.FindItem("Designer").FindItem("DockRibbon");
- xi.SetProp("Text", dotNetBarManager.LayoutDefinition);
- }
- private void RestoreDockState(XmlItem root)
- {
- XmlItem xi = root.FindItem("Designer").FindItem("DockRibbon");
- string s = xi.GetProp("Text");
- if (s != "")
- {
- // clear toolbar's DockLine property to restore position correctly
- foreach (Bar bar in dotNetBarManager.Bars)
- {
- if (bar.BarType == eBarType.Toolbar)
- bar.DockLine = 0;
- }
- dotNetBarManager.LayoutDefinition = s;
- foreach (Bar bar in dotNetBarManager.Bars)
- {
- // fix issue with ReportTree window (wrong font scaling when undocked from DataTree)
- bar.Font = null;
- }
- }
- }
- private void DisableFloatingBars()
- {
- foreach (Bar bar in dotNetBarManager.Bars)
- {
- bar.CanUndock = false;
- }
- }
- private void dockSite_MouseUp(object sender, MouseEventArgs e)
- {
- LayoutChanged(sender, EventArgs.Empty);
- }
- internal void LayoutChanged(object sender, EventArgs e)
- {
- if (DesignMode && !initFlag)
- {
- if (LayoutChangedEvent != null)
- LayoutChangedEvent(this, EventArgs.Empty);
- }
- }
- }
- }
|