OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved. |
3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 { | 89 { |
90 return editorClient().isContinuousSpellCheckingEnabled(); | 90 return editorClient().isContinuousSpellCheckingEnabled(); |
91 } | 91 } |
92 | 92 |
93 void SpellChecker::toggleContinuousSpellChecking() | 93 void SpellChecker::toggleContinuousSpellChecking() |
94 { | 94 { |
95 editorClient().toggleContinuousSpellChecking(); | 95 editorClient().toggleContinuousSpellChecking(); |
96 if (isContinuousSpellCheckingEnabled()) | 96 if (isContinuousSpellCheckingEnabled()) |
97 return; | 97 return; |
98 for (Frame* frame = m_frame.page()->mainFrame(); frame && frame->document();
frame = frame->tree().traverseNext()) { | 98 for (Frame* frame = m_frame.page()->mainFrame(); frame && frame->document();
frame = frame->tree().traverseNext()) { |
99 for (Node* node = frame->document()->rootNode(); node; node = NodeTraver
sal::next(node)) { | 99 for (Node* node = frame->document()->rootNode(); node; node = NodeTraver
sal::next(*node)) { |
100 node->setAlreadySpellChecked(false); | 100 node->setAlreadySpellChecked(false); |
101 } | 101 } |
102 } | 102 } |
103 } | 103 } |
104 | 104 |
105 bool SpellChecker::isGrammarCheckingEnabled() | 105 bool SpellChecker::isGrammarCheckingEnabled() |
106 { | 106 { |
107 return editorClient().isGrammarCheckingEnabled(); | 107 return editorClient().isGrammarCheckingEnabled(); |
108 } | 108 } |
109 | 109 |
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 void SpellChecker::didEndEditingOnTextField(Element* e) | 719 void SpellChecker::didEndEditingOnTextField(Element* e) |
720 { | 720 { |
721 // Remove markers when deactivating a selection in an <input type="text"/>. | 721 // Remove markers when deactivating a selection in an <input type="text"/>. |
722 // Prevent new ones from appearing too. | 722 // Prevent new ones from appearing too. |
723 m_spellCheckRequester->cancelCheck(); | 723 m_spellCheckRequester->cancelCheck(); |
724 HTMLTextFormControlElement* textFormControlElement = toHTMLTextFormControlEl
ement(e); | 724 HTMLTextFormControlElement* textFormControlElement = toHTMLTextFormControlEl
ement(e); |
725 HTMLElement* innerText = textFormControlElement->innerTextElement(); | 725 HTMLElement* innerText = textFormControlElement->innerTextElement(); |
726 DocumentMarker::MarkerTypes markerTypes(DocumentMarker::Spelling); | 726 DocumentMarker::MarkerTypes markerTypes(DocumentMarker::Spelling); |
727 if (isGrammarCheckingEnabled() || unifiedTextCheckerEnabled()) | 727 if (isGrammarCheckingEnabled() || unifiedTextCheckerEnabled()) |
728 markerTypes.add(DocumentMarker::Grammar); | 728 markerTypes.add(DocumentMarker::Grammar); |
729 for (Node* node = innerText; node; node = NodeTraversal::next(node, innerTex
t)) { | 729 for (Node* node = innerText; node; node = NodeTraversal::next(*node, innerTe
xt)) { |
730 m_frame.document()->markers()->removeMarkers(node, markerTypes); | 730 m_frame.document()->markers()->removeMarkers(node, markerTypes); |
731 } | 731 } |
732 } | 732 } |
733 | 733 |
734 void SpellChecker::respondToChangedSelection(const VisibleSelection& oldSelectio
n, FrameSelection::SetSelectionOptions options) | 734 void SpellChecker::respondToChangedSelection(const VisibleSelection& oldSelectio
n, FrameSelection::SetSelectionOptions options) |
735 { | 735 { |
736 bool closeTyping = options & FrameSelection::CloseTyping; | 736 bool closeTyping = options & FrameSelection::CloseTyping; |
737 bool isContinuousSpellCheckingEnabled = this->isContinuousSpellCheckingEnabl
ed(); | 737 bool isContinuousSpellCheckingEnabled = this->isContinuousSpellCheckingEnabl
ed(); |
738 bool isContinuousGrammarCheckingEnabled = isContinuousSpellCheckingEnabled &
& isGrammarCheckingEnabled(); | 738 bool isContinuousGrammarCheckingEnabled = isContinuousSpellCheckingEnabled &
& isGrammarCheckingEnabled(); |
739 if (isContinuousSpellCheckingEnabled) { | 739 if (isContinuousSpellCheckingEnabled) { |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
867 } | 867 } |
868 | 868 |
869 void SpellChecker::requestTextChecking(const Element& element) | 869 void SpellChecker::requestTextChecking(const Element& element) |
870 { | 870 { |
871 RefPtr<Range> rangeToCheck = rangeOfContents(const_cast<Element*>(&element))
; | 871 RefPtr<Range> rangeToCheck = rangeOfContents(const_cast<Element*>(&element))
; |
872 m_spellCheckRequester->requestCheckingFor(SpellCheckRequest::create(TextChec
kingTypeSpelling | TextCheckingTypeGrammar, TextCheckingProcessBatch, rangeToChe
ck, rangeToCheck)); | 872 m_spellCheckRequester->requestCheckingFor(SpellCheckRequest::create(TextChec
kingTypeSpelling | TextCheckingTypeGrammar, TextCheckingProcessBatch, rangeToChe
ck, rangeToCheck)); |
873 } | 873 } |
874 | 874 |
875 | 875 |
876 } // namespace WebCore | 876 } // namespace WebCore |
OLD | NEW |