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#ifndef CHROME_RENDERER_SPELLCHECKER_CUSTOM_DICTIONARY_ENGINE_H_ 6#define CHROME_RENDERER_SPELLCHECKER_CUSTOM_DICTIONARY_ENGINE_H_ 7 8#include <set> 9#include <string> 10#include <vector> 11 12#include "base/strings/string16.h" 13 14// Custom spellcheck dictionary. Words in this dictionary are always correctly 15// spelled. Words that are not in this dictionary may or may not be correctly 16// spelled. 17class CustomDictionaryEngine { 18 public: 19 CustomDictionaryEngine(); 20 ~CustomDictionaryEngine(); 21 22 // Initialize the custom dictionary engine. 23 void Init(const std::set<std::string>& words); 24 25 // Spellcheck |text|. Assumes that another spelling engine has set 26 // |misspelling_start| and |misspelling_len| to indicate a misspelling. 27 // Returns true if there are no misspellings, otherwise returns false. 28 bool SpellCheckWord(const base::string16& text, 29 int misspelling_start, 30 int misspelling_len); 31 32 // Update custom dictionary words. 33 void OnCustomDictionaryChanged( 34 const std::vector<std::string>& words_added, 35 const std::vector<std::string>& words_removed); 36 37 private: 38 // Correctly spelled words. 39 std::set<base::string16> dictionary_; 40 41 DISALLOW_COPY_AND_ASSIGN(CustomDictionaryEngine); 42}; 43 44#endif // CHROME_RENDERER_SPELLCHECKER_CUSTOM_DICTIONARY_ENGINE_H_ 45