1 // Copyright (c) 2011 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_OPTIONS_HANDLER_COMMON_H_ 6 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_LANGUAGE_OPTIONS_HANDLER_COMMON_H_ 7 #pragma once 8 9 #include "chrome/browser/ui/webui/options/options_ui.h" 10 11 class DictionaryValue; 12 class ListValue; 13 14 // The base class for language options page UI handlers. This class has code 15 // common to the Chrome OS and non-Chrome OS implementation of the handler. 16 class LanguageOptionsHandlerCommon : public OptionsPageUIHandler { 17 public: 18 LanguageOptionsHandlerCommon(); 19 virtual ~LanguageOptionsHandlerCommon(); 20 21 // OptionsPageUIHandler implementation. 22 virtual void GetLocalizedValues(DictionaryValue* localized_strings); 23 24 // DOMMessageHandler implementation. 25 virtual void RegisterMessages(); 26 27 // The following static methods are public for ease of testing. 28 29 // Gets the set of language codes that can be used as UI language. 30 // The return value will look like: 31 // {'en-US': true, 'fi': true, 'fr': true, ...} 32 // 33 // Note that true in values does not mean anything. We just use the 34 // dictionary as a set. 35 static DictionaryValue* GetUILanguageCodeSet(); 36 37 // Gets the set of language codes that can be used for spellchecking. 38 // The return value will look like: 39 // {'en-US': true, 'fi': true, 'fr': true, ...} 40 // 41 // Note that true in values does not mean anything. We just use the 42 // dictionary as a set. 43 static DictionaryValue* GetSpellCheckLanguageCodeSet(); 44 45 private: 46 // Returns the name of the product (ex. "Chrome" or "Chrome OS"). 47 virtual string16 GetProductName() = 0; 48 49 // Sets the application locale. 50 virtual void SetApplicationLocale(const std::string& language_code) = 0; 51 52 // Called when the language options is opened. 53 void LanguageOptionsOpenCallback(const ListValue* args); 54 55 // Called when the UI language is changed. 56 // |args| will contain the language code as string (ex. "fr"). 57 void UiLanguageChangeCallback(const ListValue* args); 58 59 // Called when the spell check language is changed. 60 // |args| will contain the language code as string (ex. "fr"). 61 void SpellCheckLanguageChangeCallback(const ListValue* args); 62 63 DISALLOW_COPY_AND_ASSIGN(LanguageOptionsHandlerCommon); 64 }; 65 66 #endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_LANGUAGE_OPTIONS_HANDLER_COMMON_H_ 67