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. 17 class 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