/// <summary>Factory for making pages</summary> private PageBase PageFactory(ETutPage page) { switch (page) { default: throw new Exception("Unknown page number"); case ETutPage.OpenLogData: return(new Main.TutOpenLogData(this, m_main)); case ETutPage.EnableHighlights: return(new Main.TutEnableHighlights(this, m_main)); case ETutPage.EnableFilters: return(new Main.TutEnableFilters(this, m_main)); case ETutPage.EnableTransforms: return(new Main.TutEnableTransforms(this, m_main)); case ETutPage.EnableActions: return(new Main.TutEnableActions(this, m_main)); case ETutPage.FileWatching: return(new Main.TutFileWatching(this, m_main)); case ETutPage.FileScroll: return(new Main.TutFileScroll(this, m_main)); case ETutPage.PatternEditor: return(new SettingsUI.TutPatternEditor(this, m_main, m_settings_ui)); case ETutPage.PatternsList: return(new SettingsUI.TutPatternsList(this, m_main, m_settings_ui)); case ETutPage.PatternSets: return(new Main.TutPatternSets(this, m_main)); case ETutPage.HelpMenu: return(new Main.TutHelpMenu(this, m_main)); } }
public FirstRunTutorial(Main main) : base(main, EPin.TopRight, new Point(-200, 80)) { InitializeComponent(); ShowInTaskbar = false; Icon = main.Icon; HideOnClose = false; // Close the current log file, save the user settings // and load the default settings m_main = main; m_main.Src = null; m_page_index = ETutPage.First - 1; // Grab a reference to the main settings then replace the // main settings with a default instance m_orig_settings = m_main.Settings; m_main.Settings = new Settings() { AutoSaveOnChanges = false }; // Create a new settings UI for the tutorial m_settings_ui = new SettingsUI(m_main, SettingsUI.ETab.Highlights) { StartPosition = FormStartPosition.CenterParent, Owner = m_main }; m_current_page = new PageBase(this, m_main); m_html.Navigate("about:blank"); m_btn_back.Click += (s, a) => SwitchPage(false); m_btn_next.Click += (s, a) => SwitchPage(true); }
/// <summary>Update the form to display the next/previous page</summary> private void SwitchPage(bool forward) { m_page_index += forward ? 1 : -1; if (m_page_index < ETutPage.First) { Close(); return; } if (m_page_index > ETutPage.Last) { Close(); return; } m_btn_back.Text = m_page_index == ETutPage.First ? "&Close" : "&Back"; m_btn_next.Text = m_page_index == ETutPage.Last ? "&Close" : "&Next"; m_current_page.Exit(forward); m_current_page.Dispose(); m_current_page = PageFactory(m_page_index); m_current_page.Enter(); }