diff options
Diffstat (limited to 'extensions/spellcheck/idl')
-rw-r--r-- | extensions/spellcheck/idl/moz.build | 15 | ||||
-rw-r--r-- | extensions/spellcheck/idl/mozIPersonalDictionary.idl | 77 | ||||
-rw-r--r-- | extensions/spellcheck/idl/mozISpellCheckingEngine.idl | 96 | ||||
-rw-r--r-- | extensions/spellcheck/idl/mozISpellI18NManager.idl | 21 | ||||
-rw-r--r-- | extensions/spellcheck/idl/mozISpellI18NUtil.idl | 47 |
5 files changed, 256 insertions, 0 deletions
diff --git a/extensions/spellcheck/idl/moz.build b/extensions/spellcheck/idl/moz.build new file mode 100644 index 000000000..c1fd32f14 --- /dev/null +++ b/extensions/spellcheck/idl/moz.build @@ -0,0 +1,15 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# 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/. + +XPIDL_SOURCES += [ + 'mozIPersonalDictionary.idl', + 'mozISpellCheckingEngine.idl', + 'mozISpellI18NManager.idl', + 'mozISpellI18NUtil.idl', +] + +XPIDL_MODULE = 'spellchecker' + diff --git a/extensions/spellcheck/idl/mozIPersonalDictionary.idl b/extensions/spellcheck/idl/mozIPersonalDictionary.idl new file mode 100644 index 000000000..ce3bf3cb2 --- /dev/null +++ b/extensions/spellcheck/idl/mozIPersonalDictionary.idl @@ -0,0 +1,77 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* 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 nsIStringEnumerator; + +[scriptable, uuid(7EF52EAF-B7E1-462B-87E2-5D1DBACA9048)] + +/** + * This interface represents a Personal Dictionary. + */ + +interface mozIPersonalDictionary : nsISupports { + + /** + * Load the dictionary + */ + void load(); + + /** + * Save the dictionary + */ + void save(); + + /** + * Get the (lexicographically sorted) list of words + */ + readonly attribute nsIStringEnumerator wordList; + + /** + * Check a unicode string + */ + boolean check(in wstring word, in wstring lang); + + /** + * Add a word to the personal dictionary + */ + void addWord(in wstring word, in wstring lang); + + /** + * Remove a word from the personal dictionary + */ + void removeWord(in wstring word, in wstring lang); + + /** + * Add a word to the ignore all list + */ + void ignoreWord(in wstring word); + + /** + * Clear the ignore list + */ + void endSession(); + + /** + * These three functions are here in case we want to store previous + * misspellings and return them at the head of the misspell list. + */ + + /** + * Add a misspelling to the list of corrections + */ + void addCorrection(in wstring word,in wstring correction, in wstring lang); + + /** + * Remove a misspelling from the list of corrections + */ + void removeCorrection(in wstring word,in wstring correction, in wstring lang); + + /** + * Get a list of previous corrections for the word + */ + void getCorrection(in wstring word, [array, size_is(count)] out wstring words, out uint32_t count); +}; diff --git a/extensions/spellcheck/idl/mozISpellCheckingEngine.idl b/extensions/spellcheck/idl/mozISpellCheckingEngine.idl new file mode 100644 index 000000000..95784b141 --- /dev/null +++ b/extensions/spellcheck/idl/mozISpellCheckingEngine.idl @@ -0,0 +1,96 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* 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 nsIFile; +interface mozIPersonalDictionary; + +[scriptable, uuid(8ba643a4-7ddc-4662-b976-7ec123843f10)] + +/** + * This interface represents a SpellChecker. + */ + +interface mozISpellCheckingEngine : nsISupports { + /** + * The name of the current dictionary. Is either a value from + * getDictionaryList or the empty string if no dictionary is selected. + * Setting this attribute to a value not in getDictionaryList will throw + * NS_ERROR_FILE_NOT_FOUND. + * + * If the dictionary is changed to no dictionary (the empty string), an + * observer is allowed to set another dictionary before it returns. + */ + attribute wstring dictionary; + + /** + * The language this spellchecker is using when checking + */ + readonly attribute wstring language; + + /** + * Does the engine provide its own personal dictionary? + */ + readonly attribute boolean providesPersonalDictionary; + + /** + * Does the engine provide its own word utils? + */ + readonly attribute boolean providesWordUtils; + + /** + * The name of the engine + */ + readonly attribute wstring name; + + /** + * a string indicating the copyright of the engine + */ + readonly attribute wstring copyright; + + /** + * the personal dictionary + */ + attribute mozIPersonalDictionary personalDictionary; + + /** + * Get the list of dictionaries + */ + void getDictionaryList([array, size_is(count)] out wstring dictionaries, out uint32_t count); + + /** + * check a word + */ + boolean check(in wstring word); + + /** + * get a list of suggestions for a misspelled word + */ + void suggest(in wstring word,[array, size_is(count)] out wstring suggestions, out uint32_t count); + + /** + * Load dictionaries from the specified dir + */ + void loadDictionariesFromDir(in nsIFile dir); + + /** + * Add dictionaries from a directory to the spell checker + */ + void addDirectory(in nsIFile dir); + + /** + * Remove dictionaries from a directory from the spell checker + */ + void removeDirectory(in nsIFile dir); +}; + +%{C++ +#define DICTIONARY_SEARCH_DIRECTORY "DictD" +#define DICTIONARY_SEARCH_DIRECTORY_LIST "DictDL" + +#define SPELLCHECK_DICTIONARY_REMOVE_NOTIFICATION \ + "spellcheck-dictionary-remove" +%} diff --git a/extensions/spellcheck/idl/mozISpellI18NManager.idl b/extensions/spellcheck/idl/mozISpellI18NManager.idl new file mode 100644 index 000000000..b702608a9 --- /dev/null +++ b/extensions/spellcheck/idl/mozISpellI18NManager.idl @@ -0,0 +1,21 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* 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" +#include "mozISpellI18NUtil.idl" + +[scriptable, uuid(AEB8936F-219C-4D3C-8385-D9382DAA551A)] + +/** + * This interface contains various I18N related code used in various places + * by the spell checker. + */ + +interface mozISpellI18NManager : nsISupports { + /** + * Get a mozISpellI18NUtil interface that best matches the given language. + */ + mozISpellI18NUtil getUtil(in wstring language); +}; diff --git a/extensions/spellcheck/idl/mozISpellI18NUtil.idl b/extensions/spellcheck/idl/mozISpellI18NUtil.idl new file mode 100644 index 000000000..17d9ec234 --- /dev/null +++ b/extensions/spellcheck/idl/mozISpellI18NUtil.idl @@ -0,0 +1,47 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* 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" + +[scriptable, uuid(B075D5DC-1DF1-441A-BEBF-680D8CAAA19C)] + +/** + * This interface contains various I18N related code used in various places by the spell checker. + */ + +interface mozISpellI18NUtil : nsISupports { + + const uint32_t kCheck=0; + const uint32_t kSuggest=1; + + /** + * The language being used to check spelling + */ + readonly attribute wstring language; + + /** + * Given a word return a list of possible root forms of that word + */ + void getRootForm(in wstring word, + in uint32_t type, + [array, size_is(count)] out wstring words, + out uint32_t count); + + /** + * Given a word return a list of possible root forms of that word + */ + void fromRootForm(in wstring word, + [array, size_is(icount)] in wstring iwords, + in uint32_t icount, + [array, size_is(ocount)] out wstring owords, + out uint32_t ocount); + + /** + * Given a unicode string and an offset, find the beginning and end of the + * next word. begin and end are -1 if there are no words remaining in the + * string. This should really be folded into the Line/WordBreaker. + */ + void findNextWord(in wstring word, in uint32_t length, in uint32_t offset, out int32_t begin, out int32_t end); +}; |