예제 #1
0
        /* Event members */

        private void OnDefaultsFileOpenEncodingChanged(object o, EventArgs args)
        {
            int active = fileOpenEncoding.ActiveSelection;
            ConfigFileOpenEncodingOption activeOption = (ConfigFileOpenEncodingOption)Enum.ToObject(typeof(ConfigFileOpenEncodingOption), active);

            if (((int)activeOption) > ((int)ConfigFileOpenEncodingOption.Specific))     //Positions higher than specific are always specific too
            {
                activeOption = ConfigFileOpenEncodingOption.Specific;
            }

            Base.Config.FileOpenEncodingOption = activeOption;
            /* If encoding option is specific, encodingOption=Specific and encoding holds the encoding name */
            if (activeOption == ConfigFileOpenEncodingOption.Specific)
            {
                EncodingDescription chosenEncoding = fileOpenEncoding.ChosenEncoding;
                if (!chosenEncoding.Equals(EncodingDescription.Empty))
                {
                    Base.Config.FileOpenEncodingFixed = chosenEncoding.Name;
                }
            }
            else
            {
                /* If encoding is current locale, encoding holds current locale too, otherwise it just holds auto detect */
                ConfigFileOpenEncoding encodingToStore = ConfigFileOpenEncoding.AutoDetect;
                if (activeOption == ConfigFileOpenEncodingOption.CurrentLocale)
                {
                    encodingToStore = ConfigFileOpenEncoding.CurrentLocale;
                }
                Base.Config.FileOpenEncoding = encodingToStore;
            }
        }
예제 #2
0
        private EncodingComboBox BuildFileOpenEncodingComboBox()
        {
            string[] additionalActions = { Catalog.GetString("Remember the last used encoding") };
            int      fixedEncoding     = -1;
            ConfigFileOpenEncodingOption fileOpenEncodingOption = Base.Config.FileOpenEncodingOption;

            if (fileOpenEncodingOption == ConfigFileOpenEncodingOption.Specific)
            {
                string encodingName = Base.Config.FileOpenEncodingFixed;
                EncodingDescription encodingDescription = EncodingDescription.Empty;
                Encodings.Find(encodingName, ref encodingDescription);
                fixedEncoding = encodingDescription.CodePage;
            }

            EncodingComboBox comboBox = new EncodingComboBox(true, additionalActions, fixedEncoding);

            if (fileOpenEncodingOption != ConfigFileOpenEncodingOption.Specific)
            {
                comboBox.ActiveSelection = (int)fileOpenEncodingOption;
            }
            comboBox.SelectionChanged += OnDefaultsFileOpenEncodingChanged;

            return(comboBox);
        }