gecko-dev/editor/ui/dialogs/content/EdSpellCheck.js

176 строки
4.3 KiB
JavaScript
Исходник Обычный вид История

1999-05-14 00:59:08 +04:00
var misspelledWord;
var spellChecker;
1999-05-14 00:59:08 +04:00
// dialog initialization code
function Startup()
{
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");
window.close();
1999-05-14 00:59:08 +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");
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
// 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;
// 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-14 00:59:08 +04:00
function NextWord()
{
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 != "") {
dump("CheckWord: Word in edit field="+word+"\n");
isMisspelled = spellChecker.CheckCurrentWord(word);
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");
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 != "") {
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) {
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) {
isMisspelled = spellChecker.ReplaceWord(misspelledWord, newWord, true);
1999-05-14 00:59:08 +04:00
}
NextWord();
}
function AddToDictionary()
{
dump("SpellCheck: AddToDictionary\n");
if (misspelledWord != "") {
spellChecker.AddWordToDictionary(misspelledWord);
1999-05-14 00:59:08 +04:00
}
}
function EditDictionary()
{
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()
{
dump("SpellCheck: Spell Checker is closing...\n");
// Shutdown the spell check and close the dialog
spellChecker.CloseSpellChecking();
window.close();
1999-05-14 00:59:08 +04:00
}
function FillSuggestedList(firstWord)
{
list = dialog.suggestedList;
// Clear the current contents of the list
ClearList(list);
1999-05-14 00:59:08 +04:00
// We may have the initial word
if (firstWord && firstWord != "") {
dump("First Word = "+firstWord+"\n");
AppendStringToList(list, firstWord);
1999-05-14 00:59:08 +04:00
}
// Get suggested words until an empty string is returned
do {
word = spellChecker.GetSuggestedWord();
1999-05-14 00:59:08 +04:00
dump("Suggested Word = "+word+"\n");
if (word != "") {
AppendStringToList(list, word);
1999-05-14 00:59:08 +04:00
}
} while (word != "");
}