/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" interface nsIEditor; interface nsITextServicesFilter; interface nsIEditorSpellCheckCallback; [scriptable, uuid(a171c25f-e4a8-4d08-adef-b797e6377bdc)] interface nsIEditorSpellCheck : nsISupports { /** * Returns true if we can enable spellchecking. If there are no available * dictionaries, this will return false. */ boolean canSpellCheck(); /** * Turns on the spell checker for the given editor. enableSelectionChecking * set means that we only want to check the current selection in the editor, * (this controls the behavior of GetNextMisspelledWord). For spellchecking * clients with no modal UI (such as inline spellcheckers), this flag doesn't * matter. Initialization is asynchronous and is not complete until the given * callback is called. */ void InitSpellChecker(in nsIEditor editor, in boolean enableSelectionChecking, [optional] in nsIEditorSpellCheckCallback callback); /** * When interactively spell checking the document, this will return the * value of the next word that is misspelled. This also computes the * suggestions which you can get by calling GetSuggestedWord. * * @see nsISpellChecker::GetNextMisspelledWord */ wstring GetNextMisspelledWord(); /** * Used to get suggestions for the last word that was checked and found to * be misspelled. The first call will give you the first (best) suggestion. * Subsequent calls will iterate through all the suggestions, allowing you * to build a list. When there are no more suggestions, an empty string * (not a null pointer) will be returned. * * @see nsISpellChecker::GetSuggestedWord */ wstring GetSuggestedWord(); /** * Check a given word. In spite of the name, this function checks the word * you give it, returning true if the word is misspelled. If the word is * misspelled, it will compute the suggestions which you can get from * GetSuggestedWord(). * * @see nsISpellChecker::CheckCurrentWord */ boolean CheckCurrentWord(in wstring suggestedWord); /** * Use when modally checking the document to replace a word. * * @see nsISpellChecker::CheckCurrentWord */ void ReplaceWord(in wstring misspelledWord, in wstring replaceWord, in boolean allOccurrences); /** * @see nsISpellChecker::IgnoreAll */ void IgnoreWordAllOccurrences(in wstring word); /** * Fills an internal list of words added to the personal dictionary. These * words can be retrieved using GetPersonalDictionaryWord() * * @see nsISpellChecker::GetPersonalDictionary * @see GetPersonalDictionaryWord */ void GetPersonalDictionary(); /** * Used after you call GetPersonalDictionary() to iterate through all the * words added to the personal dictionary. Will return the empty string when * there are no more words. */ wstring GetPersonalDictionaryWord(); /** * Adds a word to the current personal dictionary. * * @see nsISpellChecker::AddWordToDictionary */ void AddWordToDictionary(in wstring word); /** * Removes a word from the current personal dictionary. * * @see nsISpellChecker::RemoveWordFromPersonalDictionary */ void RemoveWordFromDictionary(in wstring word); /** * Retrieves a list of the currently available dictionaries. The strings will * typically be language IDs, like "en-US". * * @see mozISpellCheckingEngine::GetDictionaryList */ void GetDictionaryList([array, size_is(count)] out wstring dictionaryList, out uint32_t count); /** * @see nsISpellChecker::GetCurrentDictionary */ AString GetCurrentDictionary(); /** * @see nsISpellChecker::SetCurrentDictionary */ void SetCurrentDictionary(in AString dictionary); /** * Call this to free up the spell checking object. It will also save the * current selected language as the default for future use. * * If you have called CanSpellCheck but not InitSpellChecker, you can still * call this function to clear the cached spell check object, and no * preference saving will happen. */ void UninitSpellChecker(); /** * Used to filter the content (for example, to skip blockquotes in email from * spellchecking. Call this before calling InitSpellChecker; calling it * after initialization will have no effect. * * @see nsITextServicesDocument::setFilter */ void setFilter(in nsITextServicesFilter filter); /** * Like CheckCurrentWord, checks the word you give it, returning true if it's * misspelled. This is faster than CheckCurrentWord because it does not * compute any suggestions. * * Watch out: this does not clear any suggestions left over from previous * calls to CheckCurrentWord, so there may be suggestions, but they will be * invalid. */ boolean CheckCurrentWordNoSuggest(in wstring suggestedWord); /** * Update the dictionary in use to be sure it corresponds to what the editor * needs. The update is asynchronous and is not complete until the given * callback is called. */ void UpdateCurrentDictionary([optional] in nsIEditorSpellCheckCallback callback); }; [scriptable, function, uuid(5f0a4bab-8538-4074-89d3-2f0e866a1c0b)] interface nsIEditorSpellCheckCallback : nsISupports { void editorSpellCheckDone(); };