1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "cocoa_spelling_engine_mac.h" 6 7#include "chrome/common/spellcheck_messages.h" 8#include "content/public/renderer/render_thread.h" 9 10using content::RenderThread; 11 12SpellingEngine* CreateNativeSpellingEngine() { 13 return new CocoaSpellingEngine(); 14} 15 16void CocoaSpellingEngine::Init(base::File bdict_file) { 17 DCHECK(!bdict_file.IsValid()); 18} 19 20bool CocoaSpellingEngine::InitializeIfNeeded() { 21 return false; // We never need to initialize. 22} 23 24bool CocoaSpellingEngine::IsEnabled() { 25 return true; // OSX is always enabled. 26} 27 28// Synchronously query against NSSpellCheck. 29// TODO(groby): We might want async support here, too. Ideally, 30// all engines share a similar path for async requests. 31bool CocoaSpellingEngine::CheckSpelling(const base::string16& word_to_check, 32 int tag) { 33 bool word_correct = false; 34 RenderThread::Get()->Send(new SpellCheckHostMsg_CheckSpelling( 35 word_to_check, tag, &word_correct)); 36 return word_correct; 37} 38 39// Synchronously query against NSSpellCheck. 40// TODO(groby): We might want async support here, too. Ideally, 41// all engines share a similar path for async requests. 42void CocoaSpellingEngine::FillSuggestionList( 43 const base::string16& wrong_word, 44 std::vector<base::string16>* optional_suggestions) { 45 RenderThread::Get()->Send(new SpellCheckHostMsg_FillSuggestionList( 46 wrong_word, optional_suggestions)); 47} 48