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_BROWSER_UI_WEBUI_OPTIONS_LANGUAGE_DICTIONARY_OVERLAY_HANDLER_H_ 6#define CHROME_BROWSER_UI_WEBUI_OPTIONS_LANGUAGE_DICTIONARY_OVERLAY_HANDLER_H_ 7 8#include "chrome/browser/spellchecker/spellcheck_custom_dictionary.h" 9#include "chrome/browser/ui/webui/options/options_ui.h" 10 11namespace options { 12 13class LanguageDictionaryOverlayHandler 14 : public OptionsPageUIHandler, 15 public SpellcheckCustomDictionary::Observer { 16 public: 17 LanguageDictionaryOverlayHandler(); 18 virtual ~LanguageDictionaryOverlayHandler(); 19 20 // Overridden from OptionsPageUIHandler: 21 virtual void GetLocalizedValues( 22 base::DictionaryValue* localized_strings) OVERRIDE; 23 virtual void RegisterMessages() OVERRIDE; 24 virtual void Uninitialize() OVERRIDE; 25 26 // Overridden from SpellcheckCustomDictionary::Observer: 27 virtual void OnCustomDictionaryLoaded() OVERRIDE; 28 virtual void OnCustomDictionaryChanged( 29 const SpellcheckCustomDictionary::Change& dictionary_change) OVERRIDE; 30 31 private: 32 // Sends the dictionary words to WebUI. 33 void ResetDictionaryWords(); 34 35 // Refreshes the displayed words. Called from WebUI. 36 void RefreshWords(const base::ListValue* args); 37 38 // Adds a new word to the dictionary. Called from WebUI. 39 void AddWord(const base::ListValue* args); 40 41 // Removes a word from the dictionary. Called from WebUI. 42 void RemoveWord(const base::ListValue* args); 43 44 // Whether the overlay is initialized and ready to show data. 45 bool overlay_initialized_; 46 47 // The custom spelling dictionary. Used for adding, removing, and reading 48 // words in custom dictionary file. 49 SpellcheckCustomDictionary* dictionary_; 50 51 DISALLOW_COPY_AND_ASSIGN(LanguageDictionaryOverlayHandler); 52}; 53 54} // namespace options 55 56#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_LANGUAGE_DICTIONARY_OVERLAY_HANDLER_H_ 57