/// <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); }
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, "%"); }