/// <summary> /// sideBarControl_SelectedIndexChanged event handler. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">An EventArgs that contains the event data.</param> private void sideBarControl_SelectedIndexChanged(object sender, EventArgs e) { // Make the selected PreferencesPanel visible. if (sideBarControl.SelectedIndex < preferencesPanelList.Count && preferencesPanelList[sideBarControl.SelectedIndex] != null) { PreferencesPanel preferencesPanel = (PreferencesPanel)preferencesPanelList[sideBarControl.SelectedIndex]; if (BidiHelper.IsRightToLeft && preferencesPanel.RightToLeft != RightToLeft.Yes) { preferencesPanel.RightToLeft = RightToLeft.Yes; } BidiHelper.RtlLayoutFixup(preferencesPanel); panelPreferences.Controls.Add(preferencesPanel); if (ShowKeyboardCues) { //fix bug 406441, if the show cues window messages have been sent to the form //resend them to force the new control to show them ControlHelper.HideAccelerators(this); ControlHelper.ShowAccelerators(this); } if (ShowFocusCues) { //fix bug 406420, if the show cues window messages have been sent to the form //resend them to force the new control to show them ControlHelper.HideFocus(this); ControlHelper.ShowFocus(this); } preferencesPanel.BringToFront(); } // Remove unselected panels. RemoveUnselectedPanels(); }
/// <summary> /// Helper method to save Preferences. /// Returns true if saved successfully. /// </summary> private bool SavePreferences() { TabSwitcher tabSwitcher = new TabSwitcher(sideBarControl); for (int i = 0; i < preferencesPanelList.Count; i++) { PreferencesPanel preferencesPanel = (PreferencesPanel)preferencesPanelList[i]; tabSwitcher.Tab = i; if (!preferencesPanel.PrepareSave(new PreferencesPanel.SwitchToPanel(tabSwitcher.Switch))) { return(false); } } // Save every PreferencesPanel. for (int i = 0; i < preferencesPanelList.Count; i++) { PreferencesPanel preferencesPanel = (PreferencesPanel)preferencesPanelList[i]; if (preferencesPanel != null) { preferencesPanel.Save(); } } // Disable the Apply button. buttonApply.Enabled = false; //notify listeners that the preferences where saved. OnPreferencesSaved(EventArgs.Empty); return(true); }
private int GetPanelHeightRequired(PreferencesPanel preferencesPanel) { int maxBottom = 0; foreach (Control c in preferencesPanel.Controls) { maxBottom = Math.Max(maxBottom, c.Bottom); } return(maxBottom); }
/// <summary> /// Removes all unselected panels. /// </summary> private void RemoveUnselectedPanels() { if (!initialized) { return; } for (int i = 0; i < preferencesPanelList.Count; i++) { if (i != sideBarControl.SelectedIndex && preferencesPanelList[i] != null) { PreferencesPanel preferencesPanel = (PreferencesPanel)preferencesPanelList[i]; if (panelPreferences.Controls.Contains(preferencesPanel)) { panelPreferences.Controls.Remove(preferencesPanel); } } } }
/// <summary> /// Sets a PreferencesPanel. /// </summary> /// <param name="index">Index of the entry to set; zero based.</param> /// <param name="preferencesPanel">The PreferencesPanel to set.</param> public void SetEntry(int index, PreferencesPanel preferencesPanel) { // Set the SideBarControl entry. sideBarControl.SetEntry(index, preferencesPanel.PanelBitmap, preferencesPanel.PanelName, "btn" + preferencesPanel.Name); // Set our PreferencesPanel event handlers. preferencesPanel.Modified += new EventHandler(preferencesPanel_Modified); // Replace and existing PreferencesPanel. if (index < preferencesPanelList.Count) { // Remove the existing PreferencesPanel. if (preferencesPanelList[index] != null) { PreferencesPanel oldPreferencesPanel = (PreferencesPanel)preferencesPanelList[index]; oldPreferencesPanel.Modified -= new EventHandler(preferencesPanel_Modified); if (sideBarControl.SelectedIndex == index) { panelPreferences.Controls.Remove(oldPreferencesPanel); } } // Set the new PreferencesPabel. preferencesPanelList[index] = preferencesPanel; } // Add a new PreferencesPanel. else { // Ensure that there are entries up to the index position (make them null). This // allows the user of this control to add his entries out of order or with gaps. for (int i = preferencesPanelList.Count; i < index; i++) { preferencesPanelList.Add(null); } // Add the BitmapButton. preferencesPanelList.Add(preferencesPanel); } // Add the Preferences panel. preferencesPanel.Dock = DockStyle.Fill; panelPreferences.Controls.Add(preferencesPanel); }
private int GetPanelHeightRequired(PreferencesPanel preferencesPanel) { int maxBottom = 0; foreach (Control c in preferencesPanel.Controls) maxBottom = Math.Max(maxBottom, c.Bottom); return maxBottom; }
/// <summary> /// Sets a PreferencesPanel. /// </summary> /// <param name="index">Index of the entry to set; zero based.</param> /// <param name="preferencesPanel">The PreferencesPanel to set.</param> public void SetEntry(int index, PreferencesPanel preferencesPanel) { // Set the SideBarControl entry. sideBarControl.SetEntry(index, preferencesPanel.PanelBitmap, preferencesPanel.PanelName, "btn" + preferencesPanel.Name); // Set our PreferencesPanel event handlers. preferencesPanel.Modified += new EventHandler(preferencesPanel_Modified); // Replace and existing PreferencesPanel. if (index < preferencesPanelList.Count) { // Remove the existing PreferencesPanel. if (preferencesPanelList[index] != null) { PreferencesPanel oldPreferencesPanel = (PreferencesPanel)preferencesPanelList[index]; oldPreferencesPanel.Modified -= new EventHandler(preferencesPanel_Modified); if (sideBarControl.SelectedIndex == index) panelPreferences.Controls.Remove(oldPreferencesPanel); } // Set the new PreferencesPabel. preferencesPanelList[index] = preferencesPanel; } // Add a new PreferencesPanel. else { // Ensure that there are entries up to the index position (make them null). This // allows the user of this control to add his entries out of order or with gaps. for (int i = preferencesPanelList.Count; i < index; i++) preferencesPanelList.Add(null); // Add the BitmapButton. preferencesPanelList.Add(preferencesPanel); } // Add the Preferences panel. preferencesPanel.Dock = DockStyle.Fill; panelPreferences.Controls.Add(preferencesPanel); }