/// <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);
        }
Ejemplo n.º 6
0
 private int GetPanelHeightRequired(PreferencesPanel preferencesPanel)
 {
     int maxBottom = 0;
     foreach (Control c in preferencesPanel.Controls)
         maxBottom = Math.Max(maxBottom, c.Bottom);
     return maxBottom;
 }
Ejemplo n.º 7
0
        /// <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);
        }