Home | History | Annotate | Download | only in WebCoreSupport
      1 /*
      2  * Copyright (C) 2006 Nikolas Zimmermann <zimmermann (at) kde.org>
      3  * Copyright (C) 2006 Zack Rusin <zack (at) kde.org>
      4  * Copyright (C) 2006 Apple Computer, Inc.
      5  * Copyright (C) 2010 Martin Robinson <mrobinson (at) webkit.org>
      6  *
      7  * All rights reserved.
      8  *
      9  * Redistribution and use in source and binary forms, with or without
     10  * modification, are permitted provided that the following conditions
     11  * are met:
     12  * 1. Redistributions of source code must retain the above copyright
     13  *    notice, this list of conditions and the following disclaimer.
     14  * 2. Redistributions in binary form must reproduce the above copyright
     15  *    notice, this list of conditions and the following disclaimer in the
     16  *    documentation and/or other materials provided with the distribution.
     17  *
     18  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
     19  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     21  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
     22  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     25  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     26  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     29  */
     30 
     31 #ifndef TextCheckerClientEnchant_h
     32 #define TextCheckerClientEnchant_h
     33 
     34 #include "TextCheckerClient.h"
     35 
     36 typedef struct _GSList GSList;
     37 typedef struct _WebKitWebView WebKitWebView;
     38 typedef struct str_enchant_broker EnchantBroker;
     39 
     40 namespace WebKit {
     41 
     42 class TextCheckerClientEnchant : public WebCore::TextCheckerClient {
     43     public:
     44         TextCheckerClientEnchant(WebKitWebView*);
     45         ~TextCheckerClientEnchant();
     46         virtual void ignoreWordInSpellDocument(const WTF::String&);
     47         virtual void learnWord(const WTF::String&);
     48         virtual void checkSpellingOfString(const UChar*, int length, int* misspellingLocation, int* misspellingLength);
     49         virtual WTF::String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&);
     50         virtual void checkGrammarOfString(const UChar*, int length, WTF::Vector<WebCore::GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength);
     51         virtual void getGuessesForWord(const WTF::String& word, const WTF::String& context, WTF::Vector<WTF::String>& guesses);
     52         virtual void requestCheckingOfString(WebCore::SpellChecker*, int, WebCore::TextCheckingTypeMask, const WTF::String&) {}
     53 
     54         void updateSpellCheckingLanguage(const char*);
     55         static void freeSpellCheckingLanguage(gpointer, gpointer);
     56     private:
     57         WebKitWebView* m_webView;
     58         GSList* m_enchantDicts;
     59         static EnchantBroker* broker;
     60     };
     61 }
     62 #endif
     63 
     64