diff -r 000000000000 -r 6474c204b198 editor/idl/nsIEditorSpellCheck.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/editor/idl/nsIEditorSpellCheck.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,173 @@ +/* -*- 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(dd32ef3b-a7d8-43d1-9617-5f2dddbe29eb)] +interface nsIEditorSpellCheck : nsISupports +{ + + /** + * Call this on any change in installed dictionaries to ensure that the spell + * checker is not using a current dictionary which is no longer available. + * If the current dictionary is no longer available, then pick another one. + */ + void checkCurrentDictionary(); + + /** + * 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(); +};