summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authormazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-14 03:57:47 +0000
committermazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-14 03:57:47 +0000
commit1c741b888324973516cb330620853c5a1e396d40 (patch)
treeb7ba99e246c3a0b5838e3741f0b14da9bcb68abf /chrome
parente60e47ad57e7ff423c39cff9c88725a7aed85118 (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/chromeos/dom_ui/language_hangul_options_handler.cc39
-rw-r--r--chrome/browser/chromeos/dom_ui/language_hangul_options_handler.h29
-rw-r--r--chrome/browser/chromeos/dom_ui/system_options_handler.cc9
-rw-r--r--chrome/browser/dom_ui/core_options_handler.cc3
-rw-r--r--chrome/browser/dom_ui/options_ui.cc3
-rw-r--r--chrome/browser/resources/options.html6
-rw-r--r--chrome/browser/resources/options/chromeos_language_hangul_options.html15
-rw-r--r--chrome/browser/resources/options/chromeos_language_hangul_options.js37
-rw-r--r--chrome/browser/resources/options/pref_ui.js9
-rw-r--r--chrome/chrome_browser.gypi2
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',