TextCheckerClientGtk.cpp [plain text]
#include "config.h"
#include "TextCheckerClientGtk.h"
#include "NotImplemented.h"
#include "webkitspellchecker.h"
#include "webkitwebsettingsprivate.h"
#include <glib.h>
#include <wtf/gobject/GOwnPtr.h>
#include <wtf/text/CString.h>
using namespace WebCore;
namespace WebKit {
TextCheckerClientGtk::TextCheckerClientGtk(WebKitSpellChecker* spellChecker)
: m_spellChecker(spellChecker)
{
}
TextCheckerClientGtk::~TextCheckerClientGtk()
{
}
void TextCheckerClientGtk::ignoreWordInSpellDocument(const String& text)
{
webkit_spell_checker_ignore_word(m_spellChecker.get(), text.utf8().data());
}
void TextCheckerClientGtk::learnWord(const String& text)
{
webkit_spell_checker_learn_word(m_spellChecker.get(), text.utf8().data());
}
void TextCheckerClientGtk::checkSpellingOfString(const UChar* text, int length, int* misspellingLocation, int* misspellingLength)
{
GOwnPtr<gchar> utf8Text(g_utf16_to_utf8(const_cast<gunichar2*>(text), length, 0, 0, 0));
webkit_spell_checker_check_spelling_of_string(m_spellChecker.get(), utf8Text.get(), misspellingLocation, misspellingLength);
}
String TextCheckerClientGtk::getAutoCorrectSuggestionForMisspelledWord(const String& inputWord)
{
return webkit_spell_checker_get_autocorrect_suggestions_for_misspelled_word(m_spellChecker.get(), inputWord.utf8().data());
}
void TextCheckerClientGtk::checkGrammarOfString(const UChar*, int, Vector<GrammarDetail>&, int*, int*)
{
notImplemented();
}
void TextCheckerClientGtk::getGuessesForWord(const String& word, const String& context, WTF::Vector<String>& guesses)
{
char** suggestions = webkit_spell_checker_get_guesses_for_word(m_spellChecker.get(), word.utf8().data(), context.utf8().data());
if (!suggestions)
return;
guesses.clear();
for (int i = 0; suggestions[i]; i++)
guesses.append(String::fromUTF8(suggestions[i]));
g_strfreev(suggestions);
}
void TextCheckerClientGtk::updateSpellCheckingLanguage(const char* spellCheckingLanguages)
{
webkit_spell_checker_update_spell_checking_languages(m_spellChecker.get(), spellCheckingLanguages);
}
}