Home | History | Annotate | Download | only in chromeos
      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_CHROMEOS_CROS_LANGUAGE_OPTIONS_HANDLER_H_
      6 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_CROS_LANGUAGE_OPTIONS_HANDLER_H_
      7 #pragma once
      8 
      9 #include "chrome/browser/chromeos/input_method/input_method_util.h"
     10 #include "chrome/browser/ui/webui/options/language_options_handler.h"
     11 
     12 namespace chromeos {
     13 
     14 // Language options page UI handler for Chrome OS.  For non-Chrome OS,
     15 // see LanguageOptionsHnadler.
     16 class CrosLanguageOptionsHandler : public LanguageOptionsHandlerCommon {
     17  public:
     18   CrosLanguageOptionsHandler();
     19   virtual ~CrosLanguageOptionsHandler();
     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 list of input methods from the given input descriptors.
     30   // The return value will look like:
     31   // [{'id': 'pinyin', 'displayName': 'Pinyin',
     32   //   'languageCodeSet': {'zh-CW': true}},  ...]
     33   //
     34   // Note that true in languageCodeSet does not mean anything. We just use
     35   // the dictionary as a set.
     36   static ListValue* GetInputMethodList(
     37       const chromeos::InputMethodDescriptors& descriptors);
     38 
     39   // Gets the list of languages from the given input descriptors.
     40   // The return value will look like:
     41   // [{'code': 'fi', 'displayName': 'Finnish', 'nativeDisplayName': 'suomi'},
     42   //  ...]
     43   static ListValue* GetLanguageList(
     44       const chromeos::InputMethodDescriptors& descriptors);
     45 
     46  private:
     47   // LanguageOptionsHandlerCommon implementation.
     48   virtual string16 GetProductName();
     49   virtual void SetApplicationLocale(const std::string& language_code);
     50 
     51   // Called when the sign-out button is clicked.
     52   void RestartCallback(const ListValue* args);
     53 
     54   // Called when the input method is disabled.
     55   // |args| will contain the input method ID as string (ex. "mozc").
     56   void InputMethodDisableCallback(const ListValue* args);
     57 
     58   // Called when the input method is enabled.
     59   // |args| will contain the input method ID as string (ex. "mozc").
     60   void InputMethodEnableCallback(const ListValue* args);
     61 
     62   // Called when the input method options page is opened.
     63   // |args| will contain the input method ID as string (ex. "mozc").
     64   void InputMethodOptionsOpenCallback(const ListValue* args);
     65 
     66   DISALLOW_COPY_AND_ASSIGN(CrosLanguageOptionsHandler);
     67 };
     68 
     69 } // namespace chromeos
     70 
     71 #endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_CROS_LANGUAGE_OPTIONS_HANDLER_H_
     72