blob: 9997d8bdc93621406f8d5416c4bde5276131944f [file] [log] [blame]
andersca@apple.com36f2f522010-12-21 00:35:16 +00001/*
2 * Copyright (C) 2010 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23 * THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#ifndef TextChecker_h
27#define TextChecker_h
28
andersca@apple.com33241f72011-01-05 02:13:12 +000029#include <WebCore/EditorClient.h>
morrita@google.com7692b422011-02-15 08:28:20 +000030#include <WebCore/TextCheckerClient.h>
andersca@apple.com33241f72011-01-05 02:13:12 +000031
andersca@apple.com36f2f522010-12-21 00:35:16 +000032namespace WebKit {
33
mrowe@apple.comd82db122011-01-22 01:46:39 +000034struct TextCheckerState;
andersca@apple.com190ba932011-01-04 22:41:52 +000035
andersca@apple.com36f2f522010-12-21 00:35:16 +000036class TextChecker {
37public:
andersca@apple.com190ba932011-01-04 22:41:52 +000038 static const TextCheckerState& state();
andersca@apple.com36f2f522010-12-21 00:35:16 +000039 static bool isContinuousSpellCheckingAllowed();
andersca@apple.com36f2f522010-12-21 00:35:16 +000040
andersca@apple.com190ba932011-01-04 22:41:52 +000041 static void setContinuousSpellCheckingEnabled(bool);
andersca@apple.com36f2f522010-12-21 00:35:16 +000042 static void setGrammarCheckingEnabled(bool);
andersca@apple.come95efb12011-01-04 19:49:18 +000043
andersca@apple.com190ba932011-01-04 22:41:52 +000044#if PLATFORM(MAC)
andersca@apple.come95efb12011-01-04 19:49:18 +000045 static void setAutomaticSpellingCorrectionEnabled(bool);
andersca@apple.com95dcf972011-01-05 18:28:29 +000046 static void setAutomaticQuoteSubstitutionEnabled(bool);
47 static void setAutomaticDashSubstitutionEnabled(bool);
48 static void setAutomaticLinkDetectionEnabled(bool);
49 static void setAutomaticTextReplacementEnabled(bool);
andersca@apple.com2fa2dba2011-01-05 21:22:04 +000050
51 static bool isSmartInsertDeleteEnabled();
52 static void setSmartInsertDeleteEnabled(bool);
andersca@apple.com190ba932011-01-04 22:41:52 +000053#endif
andersca@apple.com33241f72011-01-05 02:13:12 +000054
55 static int64_t uniqueSpellDocumentTag();
56 static void closeSpellDocumentWithTag(int64_t);
57
58 static Vector<WebCore::TextCheckingResult> checkTextOfParagraph(int64_t spellDocumentTag, const UChar* text, int length, uint64_t checkingTypes);
59 static void updateSpellingUIWithMisspelledWord(const String& misspelledWord);
60 static void getGuessesForWord(int64_t spellDocumentTag, const String& word, const String& context, Vector<String>& guesses);
andersca@apple.com047c4002011-01-05 19:41:03 +000061 static void learnWord(const String& word);
62 static void ignoreWord(int64_t spellDocumentTag, const String& word);
andersca@apple.com36f2f522010-12-21 00:35:16 +000063};
64
65} // namespace WebKit
66
67#endif // TextChecker_h