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 #include "chrome/browser/ui/webui/options/chromeos/language_chewing_handler.h"
      6 
      7 #include <limits>
      8 
      9 #include "base/logging.h"
     10 #include "base/string_number_conversions.h"
     11 #include "base/utf_string_conversions.h"
     12 #include "base/values.h"
     13 #include "chrome/browser/chromeos/language_preferences.h"
     14 #include "chrome/browser/ui/webui/options/chromeos/language_options_util.h"
     15 #include "grit/generated_resources.h"
     16 #include "ui/base/l10n/l10n_util.h"
     17 
     18 namespace {
     19 const char kI18nPrefix[] = "Chewing_";
     20 }  // namespace
     21 
     22 namespace chromeos {
     23 
     24 LanguageChewingHandler::LanguageChewingHandler() {
     25 }
     26 
     27 LanguageChewingHandler::~LanguageChewingHandler() {
     28 }
     29 
     30 void LanguageChewingHandler::GetLocalizedValues(
     31     DictionaryValue* localized_strings) {
     32   DCHECK(localized_strings);
     33 
     34   RegisterTitle(localized_strings, "languageChewingPage",
     35                 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTINGS_TITLE);
     36 
     37   for (size_t i = 0; i < language_prefs::kNumChewingBooleanPrefs; ++i) {
     38     localized_strings->SetString(
     39         GetI18nContentValue(language_prefs::kChewingBooleanPrefs[i],
     40                             kI18nPrefix),
     41         l10n_util::GetStringUTF16(
     42             language_prefs::kChewingBooleanPrefs[i].message_id));
     43   }
     44 
     45   // For maximum Chinese characters in pre-edit buffer, we use slider UI.
     46   {
     47     const language_prefs::LanguageIntegerRangePreference& preference =
     48         language_prefs::kChewingIntegerPrefs[
     49             language_prefs::kChewingMaxChiSymbolLenIndex];
     50     localized_strings->SetString(
     51         GetI18nContentValue(preference, kI18nPrefix),
     52         l10n_util::GetStringUTF16(preference.message_id));
     53     localized_strings->SetString(
     54         GetTemplateDataMinName(preference, kI18nPrefix),
     55         base::IntToString(preference.min_pref_value));
     56     localized_strings->SetString(
     57         GetTemplateDataMaxName(preference, kI18nPrefix),
     58         base::IntToString(preference.max_pref_value));
     59   }
     60 
     61   // For number of candidates per page, we use select-option UI.
     62   {
     63     const language_prefs::LanguageIntegerRangePreference& preference =
     64         language_prefs::kChewingIntegerPrefs[
     65             language_prefs::kChewingCandPerPageIndex];
     66     localized_strings->SetString(
     67         GetI18nContentValue(preference, kI18nPrefix),
     68         l10n_util::GetStringUTF16(preference.message_id));
     69     ListValue* list_value = new ListValue();
     70     for (int i = preference.min_pref_value; i <= preference.max_pref_value;
     71          ++i) {
     72       ListValue* option = new ListValue();
     73       option->Append(CreateValue(i));
     74       option->Append(CreateValue(i));
     75       list_value->Append(option);
     76     }
     77     localized_strings->Set(GetTemplateDataPropertyName(preference, kI18nPrefix),
     78                            list_value);
     79   }
     80 
     81   for (size_t i = 0; i < language_prefs::kNumChewingMultipleChoicePrefs;
     82        ++i) {
     83     const language_prefs::LanguageMultipleChoicePreference<const char*>&
     84         preference = language_prefs::kChewingMultipleChoicePrefs[i];
     85     localized_strings->SetString(
     86         GetI18nContentValue(preference, kI18nPrefix),
     87         l10n_util::GetStringUTF16(preference.label_message_id));
     88     localized_strings->Set(
     89         GetTemplateDataPropertyName(preference, kI18nPrefix),
     90         CreateMultipleChoiceList(preference));
     91   }
     92 
     93   localized_strings->SetString(
     94       GetI18nContentValue(language_prefs::kChewingHsuSelKeyType, kI18nPrefix),
     95       l10n_util::GetStringUTF16(
     96           language_prefs::kChewingHsuSelKeyType.label_message_id));
     97   localized_strings->Set(
     98       GetTemplateDataPropertyName(language_prefs::kChewingHsuSelKeyType,
     99                                   kI18nPrefix),
    100       CreateMultipleChoiceList(language_prefs::kChewingHsuSelKeyType));
    101 }
    102 
    103 }  // namespace chromeos
    104