void SettingsForm_FormClosing(object sender, FormClosingEventArgs e) { try { if (!_closedOnce) { foreach (TabPage tp in tabOptions.TabPages) { BaseCfgPanel panel = tp.Controls[0] as BaseCfgPanel; if (panel != null) { if (DialogResult == DialogResult.OK) { panel.Save(); } else { panel.Discard(); } } } _closedOnce = true; return; } } catch (SettingsSaveException ex) { ErrorDispatcher.DispatchError(ex.Message, false); } e.Cancel = true; }
protected void AddPanel(Type panelType, bool condition, bool alignRight) { if (condition) { BaseCfgPanel panel = null; try { panel = Activator.CreateInstance(panelType) as BaseCfgPanel; } catch (Exception ex) { Logger.LogException(ex); } if (panel != null) { if (AddPanel(panel, condition, alignRight)) { if (panel is MultiPageCfgPanel) { List <BaseCfgPanel> subPagesToAdd = new List <BaseCfgPanel>(); if (panel is TroubleshootingPanel) { List <BaseCfgPanel> pages = GetTroubleshootingSubPages(); if (pages != null) { subPagesToAdd.AddRange(pages); } } else if (panel is ControlAppPanel) { subPagesToAdd.Add(new KeyMapCfgPanel()); List <BaseCfgPanel> pages = GetControlSubPages(); if (pages != null) { subPagesToAdd.AddRange(pages); } } else if (panel is InternetSettingsPanel) { subPagesToAdd.Add(new NetworkCfgPanel()); List <BaseCfgPanel> pages = GetInternetSubPages(); if (pages != null) { subPagesToAdd.AddRange(pages); } } foreach (var page in subPagesToAdd) { (panel as MultiPageCfgPanel).AddSubPage(page); } } } } } }
protected override void DiscardInternal() { foreach (OPMTabPage tp in tabAddons.TabPages) { BaseCfgPanel page = tp.Control as BaseCfgPanel; if (page != null) { page.Discard(); } } Modified = false; }
void AddonSettingsPanel_HandleCreated(object sender, EventArgs e) { tabAddons.TabPages.Clear(); tabAddons.ImageList.Images.Clear(); if (InitAddonCfg != null) { foreach (Delegate dlg in InitAddonCfg.GetInvocationList()) { InitAddonCfgHandler callDlg = dlg as InitAddonCfgHandler; if (callDlg != null) { BaseCfgPanel pageContents = callDlg(); if (pageContents != null) { string title = Translator.Translate(pageContents.Title); pageContents.Dock = DockStyle.Fill; OPMTabPage tp = new OPMTabPage(title, pageContents); tp.Dock = DockStyle.Fill; tp.ImageIndex = tabAddons.ImageList.Images.Count; tp.Tag = pageContents.Title; tabAddons.ImageList.Images.Add(pageContents.Image); tabAddons.TabPages.Add(tp); pageContents.ModifiedActive -= new EventHandler(OnModifiedActive); pageContents.ModifiedActive += new EventHandler(OnModifiedActive); } } } if (tabAddons.TabPages.Count > 1) { tabAddons.SelectedIndex = 0; } } }
public override void FireHelpRequest() { BaseCfgPanel panel = null; try { panel = tabOptions.SelectedTab.Controls[0] as BaseCfgPanel; } catch { panel = null; } if (panel != null) { HelpTarget.HelpRequest(this.Name, panel.GetHelpTopic()); } else { base.FireHelpRequest(); } }
protected bool AddPanel(BaseCfgPanel panel, bool condition, bool alignRight) { if (condition) { if (panel != null) { string title = Translator.Translate(panel.Title); if (!tabOptions.TabPages.ContainsKey(title)) { panel.Dock = DockStyle.Fill; OPMTabPage tp = new OPMTabPage(title, panel); tp.ImageIndex = tabOptions.ImageList.Images.Count; tabOptions.ImageList.Images.Add(panel.Image); tabOptions.TabPages.Add(tp); return(true); } } } return(false); }
private void ShowPanel(BaseCfgPanel panel, string subTitleToOpen = "") { if (selectedPanel != panel) { foreach (TabPage tp in tabOptions.TabPages) { BaseCfgPanel crtPanel = tp.Controls[0] as BaseCfgPanel; if (panel == crtPanel) { tabOptions.SelectedTab = tp; IMultiPageCfgPanel multiPagePanel = panel as IMultiPageCfgPanel; if (multiPagePanel != null && string.IsNullOrEmpty(subTitleToOpen) == false) { multiPagePanel.SelectSubPage(subTitleToOpen); } selectedPanel = panel; break; } } } }
protected void AddPanel(BaseCfgPanel panel, bool condition) { AddPanel(panel, condition, false); }