/// <summary> /// Displays preferences dialog for actuators. User can enable/disable /// actuators and also configure switches for the actuator. Uses the /// PreferencesCagegorySelectForm for configuring the actuators /// </summary> public void ShowPreferences() { if (_actuators == null) { return; } var list = new List <PreferencesCategory>(); var keyboardActuator = ActuatorManager.Instance.GetActuator(typeof(KeyboardActuator)); foreach (var actuator in _actuators.ActuatorList) { list.Add(new PreferencesCategory(actuator, true, actuator.Enabled)); } var form = new PreferencesCategorySelectForm { PreferencesCategories = list, CategoryColumnHeaderText = "Actuator", Title = "Actuators" }; form.ShowDialog(); ActuatorConfig.ActuatorSettingsFileName = UserManager.GetFullPath(ActuatorSettingsFileName); var actuatorSettings = ActuatorConfig.Load(); foreach (var category in form.PreferencesCategories) { if (category.PreferenceObj is IExtension) { var extension = category.PreferenceObj as IExtension; var actuatorSetting = actuatorSettings.Find(extension.Descriptor.Id); if (actuatorSetting != null) { actuatorSetting.Enabled = category.Enable; foreach (var actuator in _actuators.ActuatorList.Where(actuator => Equals(actuatorSetting.Id, actuator.Descriptor.Id))) { actuator.Enabled = actuatorSetting.Enabled; } } } } actuatorSettings.Save(); }
/// <summary> /// Displays the preferences dialog for TTS Engines. /// First displays the dialog that lets the user select the /// culture (language) and then displays all the TTS Engines /// discovered for that culture. The user can select the /// preferred Engine, change settings etc. /// </summary> public void ShowPreferences() { if (!ResourceUtils.IsInstalledCulture(CultureInfo.DefaultThreadCurrentUICulture)) { return; } var ci = CultureInfo.DefaultThreadCurrentUICulture; List <Type> wpTypeList = new List <Type>(); // add all the spellcheckers for the selected language wpTypeList.AddRange(_ttsEngines.Get(ci.Name).ToList()); if (String.Compare(ci.Name, ci.TwoLetterISOLanguageName, true) != 0) { wpTypeList.AddRange(_ttsEngines.Get(ci.TwoLetterISOLanguageName).ToList()); } wpTypeList.AddRange(_ttsEngines.Get(null).ToList()); wpTypeList.Add(typeof(NullTTSEngine)); //Now create a list of all the text-to-speech objects List <object> objList = wpTypeList.Select(type => Activator.CreateInstance(type)).ToList(); var categories = objList.Select(ttsEngine => new PreferencesCategory(ttsEngine)).ToList(); var preferredGuid = _ttsEngines.GetPreferredOrDefaultByCulture(ci); if (Equals(preferredGuid, Guid.Empty)) { preferredGuid = _ttsEngines.GetPreferredOrDefaultByCulture(null); } foreach (var category in categories) { category.Enable = false; } foreach (var category in categories) { var iExtension = category.PreferenceObj as IExtension; category.Enable = (iExtension != null && iExtension.Descriptor.Id == preferredGuid); if (category.Enable) { break; } } // display the form for the user to select default word predictor, // change settings etc var form1 = new PreferencesCategorySelectForm { PreferencesCategories = categories, EnableColumnHeaderText = "Default", CategoryColumnHeaderText = "TTS Engine", Title = "Text-to-speech - " + ci.DisplayName, AllowMultiEnable = false }; if (form1.ShowDialog() == DialogResult.OK) { foreach (var category in form1.PreferencesCategories) { if (category.Enable && category.PreferenceObj is IExtension) { _ttsEngines.SetPreferred(ci.Name, ((IExtension)category.PreferenceObj).Descriptor.Id); } } } }