/// <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 string GetGuiSetting(string _settingsKey) { if (userSettings.TryGetValue(_settingsKey, out string settingOption)) { if (userSettingRules.TryGetValue(_settingsKey, out object obj)) { Type t = obj.GetType(); if (t == typeof(ComboSetting)) { ComboSetting cbs = (ComboSetting)obj; if (cbs.MultiMode) { List <string> settings = new List <string>(); bool valid; ComboSetting.Setting currSetting = new ComboSetting.Setting(); foreach (string combination in cbs.ItemsbyLineNameKeys) { cbs.SplitSettings(combination, ref settings); valid = true; //Check if this combination of settings is used foreach (string setting in settings) { currSetting.Name = setting.Substring(0, setting.IndexOf("=")); currSetting.Value = setting.Remove(0, setting.IndexOf("=") + 1); if (userSettings[currSetting.Name] != currSetting.Value) { valid = false; break; } } //Get the name for this combination set if (valid) { return(cbs.GetSettingName(combination)); } } } else { return(cbs.GetSettingName(settingOption)); } } } return(settingOption); } return(null); }