Inheritance: IComparable
        private void GetProvidersAndLanguages()
        {
            Enchant enchant = new Enchant();

            enchant.Open();
            Logger.Info("[Spellcheck] Found Enchant version: {0}", enchant.Version);

            providers = enchant.GetProviders();
            Logger.Info("[Spellcheck] Found {0} providers: {1}", providers.Length, string.Join(",", providers));

            string[]  langTags = enchant.GetLanguages();
            ArrayList langs    = new ArrayList();

            foreach (string langTag in langTags)
            {
                SpellLanguage language = new SpellLanguage(langTag);
                if (!langs.Contains(language))
                {
                    langs.Add(language);
                }
            }
            langs.Sort();
            languages = (SpellLanguage[])langs.ToArray(typeof(SpellLanguage));
            Logger.Info("[Spellcheck] Found {0} languages: {1}", languages.Length, GetLanguageIDsAsString(languages));

            enchant.Close();
        }
        public void SetActiveLanguageIndex(SubtitleTextType textType, int index)
        {
            bool isEmpty = ((index < 0) || (index >= languages.Length));

            SpellLanguage activeLanguage = null;

            if (isEmpty)
            {
                index = -1;
            }
            else
            {
                activeLanguage = languages[index] as SpellLanguage;
            }

            Logger.Info("[Spellcheck] Setting active {0} language: {1}", textType, (activeLanguage == null ? "none." : activeLanguage.ID));

            /* Set index variable */
            if (textType == SubtitleTextType.Text)
            {
                activeTextLanguageIndex = index;
            }
            else
            {
                activeTranslationLanguageIndex = index;
            }

            string activeLanguageID = (isEmpty ? String.Empty : activeLanguage.ID);

            SetActiveLanguageInConfig(textType, activeLanguageID);

            EmitLanguageChanged(textType);
        }
Example #3
0
        /* Event members */

        private void OnLanguageList(string langTag, string providerName, string providerDesc, string providerFile, IntPtr userdata)
        {
            SpellLanguage language = new SpellLanguage(langTag);

            if (!languages.Contains(language))
            {
                languages.Add(language);
            }
        }
 private int GetLanguageIndex(string languageID)
 {
     for (int index = 0; index < languages.Length; index++)
     {
         SpellLanguage language = languages[index] as SpellLanguage;
         if (language.ID == languageID)
         {
             return(index);
         }
     }
     return(-1);
 }
	private bool GtkSpellSetLanguage (SpellLanguage language) {
		if (language == null) {
			if (IsGtkSpellAttached()) {
				GtkSpellDetach();
			}
			return false;
		}
		else {
			if (!IsGtkSpellAttached()) {
				GtkSpellAttach();
			}
			bool result = gtkspell_set_language(spellTextView, language.ID, IntPtr.Zero);
			if (!result)
				GtkSpellDetach();

			return result;
		}
	}