Mypal/editor/nsIEditorSpellCheck.idl

167 lines
5.6 KiB
Plaintext

/* -*- 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();
};