private void RequestCloseTabs(IEnumerable <TabPage> pages, PluginCloseInfo info) { var pagesList = pages.ToList(); if ((info.FormReason != CloseReason.None || info.ToolBoxReason == ToolBoxCloseReason.CloseAll || info.ToolBoxReason == ToolBoxCloseReason.CloseAllExceptActive) && pagesList.Count > 0) { info.Cancel = MessageBox.Show(@"Are you sure you want to close " + pagesList.Count + @" tab(s)?", @"Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes; if (info.Cancel) { return; } } foreach (var page in pagesList) { RequestCloseTab(page, info); if (info.Cancel) { return; } } }
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { var info = new PluginCloseInfo(e.CloseReason); RequestCloseTabs(GetPluginPages(), info); e.Cancel = info.Cancel; }
private void RequestCloseTab(TabPage page, PluginCloseInfo info) { var plugin = page.GetPlugin(); plugin.ClosingPlugin(info); if (info.Cancel) { return; } CloseTab(page); }
public void ClosingPlugin(PluginCloseInfo info) { if (info.FormReason != CloseReason.None || info.ToolBoxReason == ToolBoxCloseReason.CloseAll || info.ToolBoxReason == ToolBoxCloseReason.CloseAllExceptActive) { return; } info.Cancel = MessageBox.Show(@"Are you sure you want to close this tab?", @"Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes; }
/// <summary> /// Allows for the plugin to prevent the form from closing, or preform some action before closing /// By default, if the Form is being closed, or a close all or all except active is being called, it won't prompt the user to ensure they wanted to close /// </summary> /// <param name="info"></param> public virtual void ClosingPlugin(PluginCloseInfo info) { if (info.FormReason != CloseReason.None || info.ToolBoxReason == ToolBoxCloseReason.CloseAll || info.ToolBoxReason == ToolBoxCloseReason.CloseAllExceptActive) { return; } info.Cancel = MessageBox.Show(@"Are you sure you want to close this tab?", @"Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes; }
private void RequestCloseTab(TabPage page, PluginCloseInfo info) { info.Silent = currentOptions.CloseEachPluginSilently; var plugin = page.GetPlugin(); plugin.ClosingPlugin(info); if (info.Cancel) { return; } CloseTab(page); }
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { // Save current form size for future usage currentOptions.Size.CurrentSize = Size; currentOptions.Size.IsMaximized = (WindowState == FormWindowState.Maximized); currentOptions.Save(); // Warn to close opened plugins var info = new PluginCloseInfo(e.CloseReason); RequestCloseTabs(GetPluginPages(), info); e.Cancel = info.Cancel; }
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { PluginCloseInfo info; // Save current form size for future usage currentOptions.Size.CurrentSize = Size; currentOptions.Size.IsMaximized = (WindowState == FormWindowState.Maximized); currentOptions.LastConnection = this.currentConnectionDetail?.ConnectionName; var currentTab = tabControl1.SelectedTab; if (currentTab != null && currentTab.Name != "HomePageTab") { var currentPlugin = currentTab.GetPluginName(); currentOptions.LastPlugin = currentPlugin; } else { currentOptions.LastPlugin = ""; } currentOptions.Save(); // Warn to close opened plugins if (currentOptions.CloseOpenedPluginsSilently) { foreach (var page in GetPluginPages()) { info = new PluginCloseInfo(ToolBoxCloseReason.CloseAll); RequestCloseTab(page, info); if (info.Cancel) { return; } } return; } info = new PluginCloseInfo(e.CloseReason); RequestCloseTabs(GetPluginPages(), info); e.Cancel = info.Cancel; }
private void RequestCloseTab(TabPage page, PluginCloseInfo info) { info.Silent = currentOptions.CloseEachPluginSilently; var plugin = page.GetPlugin(); plugin?.ClosingPlugin(info); if (info.Cancel) { return; } int index = tabControl1.TabPages.IndexOf(page); CloseTab(page); pluginConnections.Remove(index); for (var i = index; i <= pluginConnections.Count; i++) { pluginConnections.Add(i, pluginConnections[i + 1]); pluginConnections.Remove(i + 1); } }
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { PluginCloseInfo info; // Save current form size for future usage currentOptions.Size.CurrentSize = Size; currentOptions.Size.IsMaximized = (WindowState == FormWindowState.Maximized); currentOptions.LastConnection = this.currentConnectionDetail?.ConnectionName; var currentPluginASMName = (this.ActiveControl as IXrmToolBoxPluginControl)?.GetType().FullName; var currentPlugin = pManager.Plugins.SingleOrDefault( x => x.Metadata.Name != "A Sample Tool" && x.Value.GetControl().GetType().FullName == currentPluginASMName ); currentOptions.LastPlugin = currentPlugin?.Metadata.Name; currentOptions.Save(); // Warn to close opened plugins if (currentOptions.CloseOpenedPluginsSilently) { foreach (var page in GetPluginPages()) { info = new PluginCloseInfo(ToolBoxCloseReason.CloseAll); RequestCloseTab(page, info); if (info.Cancel) { return; } } return; } info = new PluginCloseInfo(e.CloseReason); RequestCloseTabs(GetPluginPages(), info); e.Cancel = info.Cancel; }
private void RequestCloseTabs(IEnumerable<TabPage> pages, PluginCloseInfo info) { var pagesList = pages.ToList(); if ((info.FormReason != CloseReason.None || info.ToolBoxReason == ToolBoxCloseReason.CloseAll || info.ToolBoxReason == ToolBoxCloseReason.CloseAllExceptActive) && pagesList.Count > 0) { info.Cancel = MessageBox.Show(@"Are you sure you want to close " + pagesList.Count + @" tab(s)?", @"Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes; if (info.Cancel) { return; } } foreach (var page in pagesList) { RequestCloseTab(page, info); if (info.Cancel) return; } }