diff options
author | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-14 03:57:47 +0000 |
---|---|---|
committer | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-14 03:57:47 +0000 |
commit | 1c741b888324973516cb330620853c5a1e396d40 (patch) | |
tree | b7ba99e246c3a0b5838e3741f0b14da9bcb68abf /chrome | |
parent | e60e47ad57e7ff423c39cff9c88725a7aed85118 (diff) | |
download | chromium_src-1c741b888324973516cb330620853c5a1e396d40.zip chromium_src-1c741b888324973516cb330620853c5a1e396d40.tar.gz chromium_src-1c741b888324973516cb330620853c5a1e396d40.tar.bz2 |
Add a DOM UI version of ibus-hangul configuration dialog.
This dialog cannot be opend from UI yet.
The execution path will be added once "Languages and Input" dialog is ready.
TEST=manually check on the netbook by uncommenting TODO lines.
BUG=chromium-os:4806
Review URL: http://codereview.chromium.org/2853032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52279 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
10 files changed, 142 insertions, 10 deletions
diff --git a/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.cc b/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.cc new file mode 100644 index 0000000..150ae15 --- /dev/null +++ b/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.cc @@ -0,0 +1,39 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/dom_ui/language_hangul_options_handler.h" + +#include "app/l10n_util.h" +#include "base/values.h" +#include "chrome/browser/chromeos/language_preferences.h" +#include "grit/generated_resources.h" + +LanguageHangulOptionsHandler::LanguageHangulOptionsHandler() { +} + +LanguageHangulOptionsHandler::~LanguageHangulOptionsHandler() { +} + +void LanguageHangulOptionsHandler::GetLocalizedValues( + DictionaryValue* localized_strings) { + DCHECK(localized_strings); + // Language Hangul page - ChromeOS + localized_strings->SetString(L"keyboard_layout", + l10n_util::GetString(IDS_OPTIONS_SETTINGS_KEYBOARD_LAYOUT_TEXT)); + + localized_strings->Set(L"keyboardLayoutList", GetKeyboardLayoutList()); +} + +ListValue* LanguageHangulOptionsHandler::GetKeyboardLayoutList() { + ListValue* keyboard_layout_list = new ListValue(); + for (size_t i = 0; i < arraysize(chromeos::kHangulKeyboardNameIDPairs); ++i) { + ListValue* option = new ListValue(); + option->Append(Value::CreateStringValue(ASCIIToWide( + chromeos::kHangulKeyboardNameIDPairs[i].keyboard_id))); + option->Append(Value::CreateStringValue(l10n_util::GetString( + chromeos::kHangulKeyboardNameIDPairs[i].message_id))); + keyboard_layout_list->Append(option); + } + return keyboard_layout_list; +} diff --git a/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.h b/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.h new file mode 100644 index 0000000..1872fbc --- /dev/null +++ b/chrome/browser/chromeos/dom_ui/language_hangul_options_handler.h @@ -0,0 +1,29 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_DOM_UI_LANGUAGE_HANGUL_OPTIONS_HANDLER_H_ +#define CHROME_BROWSER_CHROMEOS_DOM_UI_LANGUAGE_HANGUL_OPTIONS_HANDLER_H_ + +#include "chrome/browser/dom_ui/options_ui.h" + +class DictionaryValue; +class ListValue; + +// Hangul options page UI handler. +class LanguageHangulOptionsHandler : public OptionsPageUIHandler { + public: + LanguageHangulOptionsHandler(); + virtual ~LanguageHangulOptionsHandler(); + + // OptionsUIHandler implementation. + virtual void GetLocalizedValues(DictionaryValue* localized_strings); + + private: + // Returns the list of hangul keyboards. + static ListValue* GetKeyboardLayoutList(); + + DISALLOW_COPY_AND_ASSIGN(LanguageHangulOptionsHandler); +}; + +#endif // CHROME_BROWSER_CHROMEOS_DOM_UI_LANGUAGE_HANGUL_OPTIONS_HANDLER_H_ diff --git a/chrome/browser/chromeos/dom_ui/system_options_handler.cc b/chrome/browser/chromeos/dom_ui/system_options_handler.cc index fed9222..b280526 100644 --- a/chrome/browser/chromeos/dom_ui/system_options_handler.cc +++ b/chrome/browser/chromeos/dom_ui/system_options_handler.cc @@ -107,11 +107,10 @@ ListValue* SystemOptionsHandler::GetTimezoneList() { for (std::vector<icu::TimeZone*>::iterator iter = timezones_.begin(); iter != timezones_.end(); ++iter) { const icu::TimeZone* timezone = *iter; - static const std::wstring delimiter(L"|"); - std::wstring value = GetTimezoneID(timezone); - value += delimiter; - value += GetTimezoneName(timezone); - timezoneList->Append(Value::CreateStringValue(value)); + ListValue* option = new ListValue(); + option->Append(Value::CreateStringValue(GetTimezoneID(timezone))); + option->Append(Value::CreateStringValue(GetTimezoneName(timezone))); + timezoneList->Append(option); } return timezoneList; } diff --git a/chrome/browser/dom_ui/core_options_handler.cc b/chrome/browser/dom_ui/core_options_handler.cc index 99c38ad..527055e 100644 --- a/chrome/browser/dom_ui/core_options_handler.cc +++ b/chrome/browser/dom_ui/core_options_handler.cc @@ -53,6 +53,9 @@ void CoreOptionsHandler::GetLocalizedValues( #if defined(OS_CHROMEOS) localized_strings->SetString(L"internetPage", l10n_util::GetString(IDS_OPTIONS_INTERNET_TAB_LABEL)); + localized_strings->SetString(L"languageHangulPage", + l10n_util::GetString( + IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_TITLE)); #endif } diff --git a/chrome/browser/dom_ui/options_ui.cc b/chrome/browser/dom_ui/options_ui.cc index 97e8aba..6cd44ed 100644 --- a/chrome/browser/dom_ui/options_ui.cc +++ b/chrome/browser/dom_ui/options_ui.cc @@ -42,6 +42,7 @@ #if defined(OS_CHROMEOS) #include "chrome/browser/chromeos/dom_ui/sync_options_handler.h" #include "chrome/browser/chromeos/dom_ui/labs_handler.h" +#include "chrome/browser/chromeos/dom_ui/language_hangul_options_handler.h" #include "chrome/browser/chromeos/dom_ui/system_options_handler.h" #endif @@ -112,6 +113,8 @@ OptionsUI::OptionsUI(TabContents* contents) : DOMUI(contents) { AddOptionsPageUIHandler(localized_strings, new SystemOptionsHandler()); AddOptionsPageUIHandler(localized_strings, new SyncOptionsHandler()); AddOptionsPageUIHandler(localized_strings, new LabsHandler()); + AddOptionsPageUIHandler(localized_strings, + new LanguageHangulOptionsHandler()); #endif AddOptionsPageUIHandler(localized_strings, new ContentSettingsHandler()); diff --git a/chrome/browser/resources/options.html b/chrome/browser/resources/options.html index 83d9e7b..6bf710b 100644 --- a/chrome/browser/resources/options.html +++ b/chrome/browser/resources/options.html @@ -17,6 +17,7 @@ <script src="options/pref_ui.js"></script> <script src="options/options_page.js"></script> <if expr="pp_ifdef('chromeos')"> + <script src="options/chromeos_language_hangul_options.js"></script> <script src="options/chromeos_system_options.js"></script> </if> <script src="options/advanced_options.js"></script> @@ -35,6 +36,8 @@ function load() { localStrings = new LocalStrings(); if (cr.isChromeOS) { OptionsPage.register(SystemOptions.getInstance()); + // TODO(mazda): uncomment this once the language options is ready + // OptionsPage.register(LanguageHangulOptions.getInstance()); } OptionsPage.register(BrowserOptions.getInstance()); @@ -101,6 +104,9 @@ window.onpopstate = function(e) { <if expr="pp_ifdef('chromeos')"> <include src="options/chromeos_system_options.html"> <include src="options/chromeos_labs.html"> + <!-- TODO(mazda): include options/chromeos_language_hangul_options.html + once the language options dialog is ready. --> + <include src="options/sync_options.html" > </if> <include src="options/browser_options.html"> <include src="options/personal_options.html"> diff --git a/chrome/browser/resources/options/chromeos_language_hangul_options.html b/chrome/browser/resources/options/chromeos_language_hangul_options.html new file mode 100644 index 0000000..f6506b5 --- /dev/null +++ b/chrome/browser/resources/options/chromeos_language_hangul_options.html @@ -0,0 +1,15 @@ +<div class="page hidden" id="languageHangulPage"> + <section> + <div class="option"> + <table class="option-control-table"> + <tr> + <td class="option-name" i18n-content="keyboard_layout"></td> + <td class="option-value"> + <select id="keyboard-layout-select" class="control" + pref="settings.language.hangul_keyboard"></select> + </td> + </tr> + </table> + </div> + </section> +</div> diff --git a/chrome/browser/resources/options/chromeos_language_hangul_options.js b/chrome/browser/resources/options/chromeos_language_hangul_options.js new file mode 100644 index 0000000..3028839 --- /dev/null +++ b/chrome/browser/resources/options/chromeos_language_hangul_options.js @@ -0,0 +1,37 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/////////////////////////////////////////////////////////////////////////////// +// LanguageHangulOptions class: + +/** + * Encapsulated handling of ChromeOS language Hangul options page. + * @constructor + */ +function LanguageHangulOptions(model) { + OptionsPage.call(this, 'languageHangul', templateData.languageHangulPage, + 'languageHangulPage'); +} + +LanguageHangulOptions.getInstance = function() { + if (LanguageHangulOptions.instance_) + return LanguageHangulOptions.instance_; + LanguageHangulOptions.instance_ = new LanguageHangulOptions(null); + return LanguageHangulOptions.instance_; +} + +// Inherit LanguageHangulOptions from OptionsPage. +LanguageHangulOptions.prototype = { + __proto__: OptionsPage.prototype, + + /** + * Initializes LanguageHangulOptions page. + * Calls base class implementation to starts preference initialization. + */ + initializePage: function() { + OptionsPage.prototype.initializePage.call(this); + var keyboardLayout = $('keyboard-layout-select'); + keyboardLayout.initializeValues(templateData.keyboardLayoutList) + }, +}; diff --git a/chrome/browser/resources/options/pref_ui.js b/chrome/browser/resources/options/pref_ui.js index 7d8eb35..055b21a 100644 --- a/chrome/browser/resources/options/pref_ui.js +++ b/chrome/browser/resources/options/pref_ui.js @@ -132,16 +132,15 @@ PrefSelect.prototype = { /** * Sets up options in select element. * @param {Array} options List of option and their display text. - * Each string in the array contains options value and display text split - * with '|' character. + * Each element in the array is an array of length 2 which contains options + * value in the first element and display text in the second element. * * TODO(zelidrag): move this to that i18n template classes. */ initializeValues: function(options) { var self = this; - options.forEach(function (option) { - var values = option.split('|'); - self.appendChild(new Option(values[1], values[0], false, false)); + options.forEach(function (values) { + self.appendChild(new Option(values[1], values[0])); }); }, /** diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi index 8d50e2a..d3d798d 100644 --- a/chrome/chrome_browser.gypi +++ b/chrome/chrome_browser.gypi @@ -394,6 +394,8 @@ 'browser/chromeos/dom_ui/sync_options_handler.h', 'browser/chromeos/dom_ui/labs_handler.cc', 'browser/chromeos/dom_ui/labs_handler.h', + 'browser/chromeos/dom_ui/language_hangul_options_handler.cc', + 'browser/chromeos/dom_ui/language_hangul_options_handler.h', 'browser/chromeos/dom_ui/system_options_handler.cc', 'browser/chromeos/dom_ui/system_options_handler.h', 'browser/chromeos/drop_shadow_label.cc', |