Пример #1
0
        /// <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();
        }
Пример #2
0
        /// <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);
                    }
                }
            }
        }