1999-05-14 00:59:08 +04:00
|
|
|
var misspelledWord;
|
1999-07-14 19:24:33 +04:00
|
|
|
var spellChecker;
|
1999-05-14 00:59:08 +04:00
|
|
|
|
|
|
|
// dialog initialization code
|
|
|
|
function Startup()
|
|
|
|
{
|
1999-07-14 19:24:33 +04:00
|
|
|
if (!InitEditorShell())
|
|
|
|
return;
|
|
|
|
dump("EditorShell found for Spell Checker dialog\n");
|
|
|
|
|
|
|
|
// Get the spellChecker shell
|
|
|
|
spellChecker = editorShell.QueryInterface(Components.interfaces.nsIEditorSpellCheck);
|
|
|
|
if (!spellChecker) {
|
|
|
|
dump("SpellChecker not found!!!\n");
|
1999-05-27 01:40:51 +04:00
|
|
|
window.close();
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
1999-07-14 19:24:33 +04:00
|
|
|
// Save as a property of the window so it can be used by child dialogs
|
|
|
|
window.spellChecker = spellChecker;
|
1999-05-14 00:59:08 +04:00
|
|
|
|
|
|
|
// Create dialog object to store controls for easy access
|
|
|
|
dialog = new Object;
|
|
|
|
if (!dialog)
|
|
|
|
{
|
|
|
|
dump("Failed to create dialog object!!!\n");
|
1999-05-27 01:40:51 +04:00
|
|
|
window.close();
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
dialog.wordInput = document.getElementById("Word");
|
|
|
|
dialog.suggestedList = document.getElementById("SuggestedList");
|
|
|
|
dialog.languageList = document.getElementById("");
|
|
|
|
if (!dialog.wordInput ||
|
|
|
|
!dialog.suggestedList ||
|
|
|
|
!dialog.languageList )
|
|
|
|
{
|
|
|
|
dump("Not all dialog controls were found!!!\n");
|
|
|
|
}
|
|
|
|
// NOTE: We shouldn't have been created if there was no misspelled word
|
|
|
|
|
1999-05-27 01:40:51 +04:00
|
|
|
// The first misspelled word is passed as the 2nd extra parameter in window.openDialog()
|
|
|
|
misspelledWord = window.arguments[1];
|
1999-05-14 00:59:08 +04:00
|
|
|
|
|
|
|
if (misspelledWord != "") {
|
|
|
|
dump("First misspelled word = "+misspelledWord+"\n");
|
|
|
|
// Put word in input field
|
|
|
|
dialog.wordInput.value = misspelledWord;
|
1999-05-27 01:40:51 +04:00
|
|
|
// Get the list of suggested replacements
|
1999-05-14 00:59:08 +04:00
|
|
|
FillSuggestedList();
|
|
|
|
} else {
|
|
|
|
dump("No misspelled word found\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
dialog.suggestedList.focus();
|
|
|
|
}
|
1999-05-27 01:40:51 +04:00
|
|
|
|
1999-05-14 00:59:08 +04:00
|
|
|
function NextWord()
|
|
|
|
{
|
1999-07-14 19:24:33 +04:00
|
|
|
misspelledWord = spellChecker.GetNextMisspelledWord();
|
1999-05-14 00:59:08 +04:00
|
|
|
dialog.wordInput.value = misspelledWord;
|
|
|
|
if (misspelledWord == "") {
|
|
|
|
dump("FINISHED SPELL CHECKING\n");
|
|
|
|
FillSuggestedList("(no suggestions)");
|
|
|
|
} else {
|
|
|
|
FillSuggestedList();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function CheckWord()
|
|
|
|
{
|
|
|
|
dump("SpellCheck: CheckWord\n");
|
|
|
|
word = dialog.wordInput.value;
|
|
|
|
if (word != "") {
|
1999-05-27 01:40:51 +04:00
|
|
|
dump("CheckWord: Word in edit field="+word+"\n");
|
1999-07-14 19:24:33 +04:00
|
|
|
isMisspelled = spellChecker.CheckCurrentWord(word);
|
1999-05-27 01:40:51 +04:00
|
|
|
if (isMisspelled) {
|
|
|
|
dump("CheckWord says word was misspelled\n");
|
|
|
|
misspelledWord = word;
|
|
|
|
FillSuggestedList();
|
|
|
|
} else {
|
|
|
|
ClearList(dialog.suggestedList);
|
|
|
|
AppendStringToList(dialog.suggestedList, "(correct spelling)");
|
|
|
|
}
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function SelectSuggestedWord()
|
|
|
|
{
|
|
|
|
dump("SpellCheck: SelectSuggestedWord\n");
|
1999-05-27 01:40:51 +04:00
|
|
|
dialog.wordInput.value = dialog.suggestedList.options[dialog.suggestedList.selectedIndex].value;
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
function Ignore()
|
|
|
|
{
|
|
|
|
dump("SpellCheck: Ignore\n");
|
|
|
|
NextWord();
|
|
|
|
}
|
|
|
|
|
|
|
|
function IgnoreAll()
|
|
|
|
{
|
|
|
|
dump("SpellCheck: IgnoreAll\n");
|
|
|
|
if (misspelledWord != "") {
|
1999-07-14 19:24:33 +04:00
|
|
|
spellChecker.IgnoreWordAllOccurrences(misspelledWord);
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
NextWord();
|
|
|
|
}
|
|
|
|
|
|
|
|
function Replace()
|
|
|
|
{
|
|
|
|
dump("SpellCheck: Replace\n");
|
|
|
|
newWord = dialog.wordInput.value;
|
|
|
|
if (misspelledWord != "" && misspelledWord != newWord) {
|
1999-07-14 19:24:33 +04:00
|
|
|
isMisspelled = spellChecker.ReplaceWord(misspelledWord, newWord, false);
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
NextWord();
|
|
|
|
}
|
|
|
|
|
|
|
|
function ReplaceAll()
|
|
|
|
{
|
|
|
|
dump("SpellCheck: ReplaceAll\n");
|
|
|
|
newWord = dialog.wordInput.value;
|
|
|
|
if (misspelledWord != "" && misspelledWord != newWord) {
|
1999-07-14 19:24:33 +04:00
|
|
|
isMisspelled = spellChecker.ReplaceWord(misspelledWord, newWord, true);
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
NextWord();
|
|
|
|
}
|
|
|
|
|
|
|
|
function AddToDictionary()
|
|
|
|
{
|
|
|
|
dump("SpellCheck: AddToDictionary\n");
|
|
|
|
if (misspelledWord != "") {
|
1999-07-14 19:24:33 +04:00
|
|
|
spellChecker.AddWordToDictionary(misspelledWord);
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function EditDictionary()
|
|
|
|
{
|
1999-07-21 23:56:21 +04:00
|
|
|
window.openDialog("chrome://editor/content/EdDictionary.xul", "Dictionary", "chrome", "", misspelledWord);
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
function SelectLanguage()
|
|
|
|
{
|
|
|
|
// A bug in combobox prevents this from working
|
|
|
|
dump("SpellCheck: SelectLanguage.\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
function Close()
|
|
|
|
{
|
1999-07-14 19:24:33 +04:00
|
|
|
dump("SpellCheck: Spell Checker is closing...\n");
|
1999-05-27 01:40:51 +04:00
|
|
|
// Shutdown the spell check and close the dialog
|
1999-07-14 19:24:33 +04:00
|
|
|
spellChecker.CloseSpellChecking();
|
1999-05-27 01:40:51 +04:00
|
|
|
window.close();
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
function FillSuggestedList(firstWord)
|
|
|
|
{
|
|
|
|
list = dialog.suggestedList;
|
|
|
|
|
|
|
|
// Clear the current contents of the list
|
1999-05-27 01:40:51 +04:00
|
|
|
ClearList(list);
|
|
|
|
|
1999-05-14 00:59:08 +04:00
|
|
|
// We may have the initial word
|
|
|
|
if (firstWord && firstWord != "") {
|
|
|
|
dump("First Word = "+firstWord+"\n");
|
1999-05-27 01:40:51 +04:00
|
|
|
AppendStringToList(list, firstWord);
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
// Get suggested words until an empty string is returned
|
|
|
|
do {
|
1999-07-14 19:24:33 +04:00
|
|
|
word = spellChecker.GetSuggestedWord();
|
1999-05-14 00:59:08 +04:00
|
|
|
dump("Suggested Word = "+word+"\n");
|
|
|
|
if (word != "") {
|
1999-05-27 01:40:51 +04:00
|
|
|
AppendStringToList(list, word);
|
1999-05-14 00:59:08 +04:00
|
|
|
}
|
|
|
|
} while (word != "");
|
|
|
|
}
|
|
|
|
|