2001-09-26 02:53:13 +04:00
|
|
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2012-05-21 15:12:37 +04:00
|
|
|
/* 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/. */
|
2015-05-28 18:58:42 +03:00
|
|
|
|
1999-06-12 02:40:44 +04:00
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
2002-10-12 03:46:57 +04:00
|
|
|
interface nsIEditor;
|
2013-06-06 04:07:54 +04:00
|
|
|
interface nsIEditorSpellCheckCallback;
|
2002-10-12 03:46:57 +04:00
|
|
|
|
2015-09-29 00:53:00 +03:00
|
|
|
[scriptable, uuid(a171c25f-e4a8-4d08-adef-b797e6377bdc)]
|
1999-06-12 02:40:44 +04:00
|
|
|
interface nsIEditorSpellCheck : nsISupports
|
|
|
|
{
|
|
|
|
|
2005-12-05 21:07:33 +03:00
|
|
|
/**
|
|
|
|
* 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
|
2013-06-06 04:07:54 +04:00
|
|
|
* matter. Initialization is asynchronous and is not complete until the given
|
|
|
|
* callback is called.
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2013-06-06 04:07:54 +04:00
|
|
|
void InitSpellChecker(in nsIEditor editor, in boolean enableSelectionChecking,
|
|
|
|
[optional] in nsIEditorSpellCheckCallback callback);
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::GetNextMisspelledWord
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2017-12-13 13:14:27 +03:00
|
|
|
AString GetNextMisspelledWord();
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::GetSuggestedWord
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2017-12-13 13:14:27 +03:00
|
|
|
AString GetSuggestedWord();
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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().
|
|
|
|
*
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::CheckCurrentWord
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2017-12-13 13:14:27 +03:00
|
|
|
boolean CheckCurrentWord(in AString suggestedWord);
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Use when modally checking the document to replace a word.
|
|
|
|
*
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::CheckCurrentWord
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2017-12-13 13:14:27 +03:00
|
|
|
void ReplaceWord(in AString misspelledWord, in AString replaceWord, in boolean allOccurrences);
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::IgnoreAll
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2017-12-13 13:14:27 +03:00
|
|
|
void IgnoreWordAllOccurrences(in AString word);
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Fills an internal list of words added to the personal dictionary. These
|
|
|
|
* words can be retrieved using GetPersonalDictionaryWord()
|
|
|
|
*
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::GetPersonalDictionary
|
2005-12-05 21:07:33 +03:00
|
|
|
* @see GetPersonalDictionaryWord
|
|
|
|
*/
|
1999-07-15 18:43:48 +04:00
|
|
|
void GetPersonalDictionary();
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2017-12-13 13:14:27 +03:00
|
|
|
AString GetPersonalDictionaryWord();
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Adds a word to the current personal dictionary.
|
|
|
|
*
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::AddWordToDictionary
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2017-12-13 13:14:27 +03:00
|
|
|
void AddWordToDictionary(in AString word);
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Removes a word from the current personal dictionary.
|
|
|
|
*
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::RemoveWordFromPersonalDictionary
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2017-12-13 13:14:27 +03:00
|
|
|
void RemoveWordFromDictionary(in AString word);
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieves a list of the currently available dictionaries. The strings will
|
|
|
|
* typically be language IDs, like "en-US".
|
|
|
|
*
|
|
|
|
* @see mozISpellCheckingEngine::GetDictionaryList
|
|
|
|
*/
|
2012-08-22 19:56:38 +04:00
|
|
|
void GetDictionaryList([array, size_is(count)] out wstring dictionaryList, out uint32_t count);
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::GetCurrentDictionary
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2011-08-15 21:55:02 +04:00
|
|
|
AString GetCurrentDictionary();
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
2018-11-06 06:32:04 +03:00
|
|
|
* @see mozSpellChecker::SetCurrentDictionary
|
2005-12-05 21:07:33 +03:00
|
|
|
*/
|
2011-08-15 21:55:02 +04:00
|
|
|
void SetCurrentDictionary(in AString dictionary);
|
2005-12-05 21:07:33 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2000-05-05 18:58:43 +04:00
|
|
|
void UninitSpellChecker();
|
2005-12-05 21:07:33 +03:00
|
|
|
|
2018-09-08 20:31:25 +03:00
|
|
|
const unsigned long FILTERTYPE_NORMAL = 1;
|
|
|
|
const unsigned long FILTERTYPE_MAIL = 2;
|
|
|
|
|
2005-12-05 21:07:33 +03:00
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2018-09-08 20:31:25 +03:00
|
|
|
void setFilterType(in unsigned long filterType);
|
2005-12-05 21:07:33 +03:00
|
|
|
|
2011-08-12 23:12:45 +04:00
|
|
|
/**
|
|
|
|
* Update the dictionary in use to be sure it corresponds to what the editor
|
2013-06-06 04:07:54 +04:00
|
|
|
* needs. The update is asynchronous and is not complete until the given
|
|
|
|
* callback is called.
|
2011-08-12 23:12:45 +04:00
|
|
|
*/
|
2013-06-06 04:07:54 +04:00
|
|
|
void UpdateCurrentDictionary([optional] in nsIEditorSpellCheckCallback callback);
|
2011-08-12 23:12:45 +04:00
|
|
|
|
1999-06-12 02:40:44 +04:00
|
|
|
};
|
2013-06-06 04:07:54 +04:00
|
|
|
|
|
|
|
[scriptable, function, uuid(5f0a4bab-8538-4074-89d3-2f0e866a1c0b)]
|
|
|
|
interface nsIEditorSpellCheckCallback : nsISupports
|
|
|
|
{
|
|
|
|
void editorSpellCheckDone();
|
|
|
|
};
|