Пример #1
0
        /// <summary>
        /// ComboBox value
        /// </summary>
        /// <param name="_settingKey"></param>
        /// <param name="_settingChoice"></param>
        /// <returns></returns>
        public bool UpdateSettingValue(string _settingKey, string _settingChoice)
        {
            if (userSettings.ContainsKey(_settingKey))
            {
                if (userSettingRules.TryGetValue(_settingKey, out object obj))
                {
                    Type t = obj.GetType();
                    //ComboBox Setting
                    if (t == typeof(ComboSetting))
                    {
                        ComboSetting cbs = (ComboSetting)obj;
                        //Do we have multiple settings stored in a single setting line?
                        if (cbs.MultiMode)
                        {
                            //Get the multiple settings
                            ComboSetting.Setting[] settings = cbs.GetMultiSettings(_settingChoice);
                            foreach (ComboSetting.Setting setting in settings)
                            {
                                userSettings[setting.Name] = setting.Value;
                                Console.WriteLine(string.Concat(setting.Name, "=", setting.Value));
                            }
                        }
                        else
                        {
                            userSettings[_settingKey] = cbs.GetSettingValue(_settingChoice);
                        }
                    }
                    //TrackBar Setting
                    else if (t == typeof(TrackBarSetting))
                    {
                        TrackBarSetting tbs = (TrackBarSetting)obj;
                        try {
                            userSettings[_settingKey] = tbs.SettingValue(Int32.Parse(_settingChoice));
                        }
                        catch (Exception ex) {
                            Console.WriteLine("UpdateSettingsValue: ", _settingKey, " failed to convert value ", _settingChoice, " to Int32/n", ex.Message);
                        }
                    }
                }
                else
                {
                    userSettings[_settingKey] = _settingChoice;
                }

                Console.WriteLine(string.Concat(_settingKey, "=", userSettings[_settingKey]));

                return(true);
            }
            return(false);
        }
Пример #2
0
        public void SetupTrackBar(string _settingKey, ref TrackBar _trackBar, ref Label _label, TrackBarSetting _trackBarSetting)
        {
            int value;

            //Add the rules for the track bar
            try { userSettingRules.Add(_settingKey, _trackBarSetting); }
            catch (Exception ex) { Console.WriteLine(string.Concat("SetupTrackBar: ", _settingKey, " already exists.", ex.Message)); }

            _trackBar.Tag = _label;                 //Store label as tag for future label updates
            _label.Tag    = _settingKey;

            //Set the properties for the track bar
            _trackBarSetting.SetTrackBar(ref _trackBar);

            string settingValue = OptionsManager.Instance.GetGuiSetting(_settingKey);

            //Get the cursor scale from the settings file
            if (Int32.TryParse(settingValue, out value))                     //Try converting to integer
            {
                value = _trackBar.Minimum + (value * _trackBar.LargeChange); //Calculate current value
            }
            else if (float.TryParse(settingValue, out float result))         //Try converting to float
            {
                value = (int)(result * 100);                                 //Then get integer equivalent
            }
            else
            {
                value = _trackBar.Minimum;                              //Assume the minimum value
            }
            //Calculate the perceived scale percentage
            value           = CalculateTrackBarValue(value, _trackBar.Minimum, _trackBar.Maximum, _trackBar.LargeChange);
            _trackBar.Value = value;

            //Update the % value on the label text
            int    breakPos = _label.Text.IndexOf(":");
            string text     = _label.Text;

            text        = text.Remove(breakPos + 1, text.Length - breakPos - 1);
            _label.Text = string.Concat(text, " ", value, "%");
        }