private void LoadSettings()
        {
            TabStripSettings settings = new TabStripSettings();

            settings = settings.Deserialize(_outputDirectory + _settingsFileName);

            if (!string.IsNullOrEmpty(settings.SavedTabStripSettings.TabColor))
            {
                _tabColor = ColorTranslator.FromHtml(settings.SavedTabStripSettings.TabColor);
                this.TabColorEntry.Text = settings.SavedTabStripSettings.TabColor;
            }

            if (!string.IsNullOrEmpty(settings.SavedTabStripSettings.BorderColor))
            {
                _borderColor = ColorTranslator.FromHtml(settings.SavedTabStripSettings.BorderColor);
                this.BorderColorEntry.Text = settings.SavedTabStripSettings.BorderColor;
            }

            if (!string.IsNullOrEmpty(settings.SavedTabStripSettings.SelectedTabColor))
            {
                _selectedColor = ColorTranslator.FromHtml(settings.SavedTabStripSettings.SelectedTabColor);
                this.SelectedColorEntry.Text = settings.SavedTabStripSettings.SelectedTabColor;
            }

            _borderWidth = settings.SavedTabStripSettings.BorderWidth;
            this.BorderWidthEntry.Text = _borderWidth.ToString();

            //_pottomPadding = settings.SavedTabStripSettings.BottomPadding;
            _tabWidth = settings.SavedTabStripSettings.TabWidth;
            this.TabWidthEntry.Text = _tabWidth.ToString();

            _tabHeight = settings.SavedTabStripSettings.TabHeight;
            this.TabHeightEntry.Text = _tabHeight.ToString();

            _cornerHeight = settings.SavedTabStripSettings.CornerHeight * 2;
            this.CornerHeightEntry.Text = settings.SavedTabStripSettings.CornerHeight.ToString();

            _cornerWidth = settings.SavedTabStripSettings.CornerWidth * 2;
            this.CornerWidthEntry.Text = settings.SavedTabStripSettings.CornerWidth.ToString();

            if (!string.IsNullOrEmpty(settings.SavedTabStripSettings.TabType))
            {
                _tabType = (TabType)Enum.Parse(typeof(TabType), settings.SavedTabStripSettings.TabType);

                switch (_tabType)
                {
                    case TabType.LeftLean:
                        this.LeanLeftOption.Checked = true;
                        break;

                    case TabType.RightLean:
                        this.LeanRightOption.Checked = true;
                        break;

                    default:
                        this.SymetricalOption.Checked = true;
                        break;
                }
            }

            if (!string.IsNullOrEmpty(settings.SavedTabStripSettings.TabCornerType))
            {
                _cornerType = (CornerType)Enum.Parse(typeof(CornerType), settings.SavedTabStripSettings.TabCornerType);

                switch (_cornerType)
                {
                    case CornerType.Chamfered:
                        this.ChamferedOption.Checked = true;
                        break;

                    default:
                        this.RoundedOption.Checked = true;
                        break;
                }
            }

            if (this.OutputPathEntry.Text.Trim() != settings.SavedTabStripSettings.OutputDirectory.Trim())
            {
                DialogResult result = MessageBox.Show(_overrideOutputDirMessage,
                    this.Text, MessageBoxButtons.YesNo,
                    MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);

                if (result == DialogResult.Yes)
                {
                    _outputDirectory = settings.SavedTabStripSettings.OutputDirectory;
                    this.OutputPathEntry.Text = _outputDirectory;
                }
            }
        }
        private void SaveSettings()
        {
            TabStripSettings settings = new TabStripSettings();

            settings.SavedTabStripSettings.TabColor = ColorTranslator.ToHtml(_tabColor);
            settings.SavedTabStripSettings.BorderColor = ColorTranslator.ToHtml(_borderColor);
            settings.SavedTabStripSettings.SelectedTabColor = ColorTranslator.ToHtml(_selectedColor);

            settings.SavedTabStripSettings.BorderWidth = _borderWidth;
            settings.SavedTabStripSettings.BottomPadding = -1;
            settings.SavedTabStripSettings.TabWidth = _tabWidth;
            settings.SavedTabStripSettings.TabHeight = _tabHeight;

            settings.SavedTabStripSettings.CornerHeight = _cornerHeight / 2;
            settings.SavedTabStripSettings.CornerWidth = _cornerWidth / 2;

            settings.SavedTabStripSettings.TabType = Enum.GetName(typeof(TabType), _tabType);
            settings.SavedTabStripSettings.TabCornerType = Enum.GetName(typeof(CornerType), _cornerType);

            settings.SavedTabStripSettings.OutputDirectory = _outputDirectory;

            try
            {
                settings.Serialize(_outputDirectory + _settingsFileName, settings);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public void Serialize(string path, TabStripSettings settings)
        {
            //if (! File.Exists(path))
            //{
            //	File.WriteAllText(path, _createXml);
            //}

            using (XmlTextWriter writer = new XmlTextWriter(path, Encoding.UTF8))
            {
                XmlSerializer serializer = new XmlSerializer(typeof(TabStripSettings));

                // TODO: figure out why the formatting is not working.
                writer.Formatting = Formatting.Indented;
                writer.Indentation = 4;
                writer.IndentChar = char.Parse(" ");

                serializer.Serialize(writer, settings);
            }
        }