/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Brett Wilson * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" interface nsIEditor; interface nsITextServicesFilter; [scriptable, uuid(90c93610-c116-44ab-9793-62dccb9f43ce)] 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 */ void InitSpellChecker(in nsIEditor editor, in boolean enableSelectionChecking); /** * 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 PRUint32 count); /** * @see nsISpellChecker::GetCurrentDictionary */ wstring GetCurrentDictionary(); /** * @see nsISpellChecker::SetCurrentDictionary */ void SetCurrentDictionary(in wstring dictionary); /** * Call to save the currently selected dictionary as the default. The * function UninitSpellChecker will also do this, but that function may not * be called in some situations. This function allows the caller to force the * default right now. */ void saveDefaultDictionary(); /** * 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); };