summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-24 04:44:46 +0000
committermazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-24 04:44:46 +0000
commitc5419ba7b78b4ff4c00658586b240e076496a3d2 (patch)
treebc68e7f4f74d89f53f50b2b79e0ac3a72ef3b5cc
parentd9ddc963c18de9673711493052df08df3c838d00 (diff)
downloadchromium_src-c5419ba7b78b4ff4c00658586b240e076496a3d2.zip
chromium_src-c5419ba7b78b4ff4c00658586b240e076496a3d2.tar.gz
chromium_src-c5419ba7b78b4ff4c00658586b240e076496a3d2.tar.bz2
Add DOM UI version of "Customize modifier keys" dialog.
TEST=manually on the netbook BUG=chromium-os:5152 Review URL: http://codereview.chromium.org/3153022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57141 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/app/generated_resources.grd51
-rw-r--r--chrome/browser/chromeos/dom_ui/language_customize_modifier_keys_handler.cc78
-rw-r--r--chrome/browser/chromeos/dom_ui/language_customize_modifier_keys_handler.h29
-rw-r--r--chrome/browser/chromeos/dom_ui/system_options_handler.cc3
-rw-r--r--chrome/browser/dom_ui/options_ui.cc3
-rw-r--r--chrome/browser/resources/options.html7
-rw-r--r--chrome/browser/resources/options/chromeos_language_customize_modifier_keys_overlay.html34
-rw-r--r--chrome/browser/resources/options/chromeos_system_options.html3
-rw-r--r--chrome/browser/resources/options/chromeos_system_options.js4
-rw-r--r--chrome/chrome_browser.gypi2
10 files changed, 213 insertions, 1 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index e39e881..b33fb6d 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -8258,6 +8258,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
<message name="IDS_OPTIONS_SETTINGS_LANGUAGES_CUSTOMIZE" desc="In settings system options, the label for the customize button for languages and input">
Customize languages and input...
</message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_MODIFIER_KEYS_CUSTOMIZE" desc="In settings system options, the label for the customize button for modifier keys">
+ Modifier keys...
+ </message>
<message name="IDS_OPTIONS_SETTINGS_LANGUAGES_DIALOG_TITLE">
Languages and Input
</message>
@@ -8927,6 +8930,54 @@ Keep your key file in a safe place. You will need it to create new versions of y
desc="The label for the Korean input method">
Korean input method
</message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_SEARCH_LABEL"
+ desc="The label for 'Customize modifier keys' overlay">
+ Search
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_LEFT_CTRL_LABEL"
+ desc="The label for 'Customize modifier keys' overlay">
+ Ctrl
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_LEFT_ALT_LABEL"
+ desc="The label for 'Customize modifier keys' overlay">
+ Alt
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_SEARCH"
+ desc="The dropdown list item for 'Customize modifier keys' overlay">
+ Search
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_LEFT_CTRL"
+ desc="The dropdown list item for 'Customize modifier keys' overlay">
+ Ctrl
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_LEFT_ALT"
+ desc="The dropdown list item for 'Customize modifier keys' overlay">
+ Alt
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_VOID"
+ desc="The dropdown list item for 'Customize modifier keys' overlay">
+ Disabled
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_CAPSLOCK"
+ desc="The dropdown list item for 'Customize modifier keys' overlay">
+ CapsLock
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_REPEAT_SPEED_FAST"
+ desc="The label for the Chrome OS configuration dialog">
+ fast
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_REPEAT_SPEED_FAST"
+ desc="The label for the Chrome OS configuration dialog">
+ fast
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_REPEAT_SPEED_FAST"
+ desc="The label for the Chrome OS configuration dialog">
+ fast
+ </message>
+ <message name="IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_REPEAT_SPEED_FAST"
+ desc="The label for the Chrome OS configuration dialog">
+ fast
+ </message>
<message name="IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET" desc="The ethernet network device.">
Ethernet
</message>
diff --git a/chrome/browser/chromeos/dom_ui/language_customize_modifier_keys_handler.cc b/chrome/browser/chromeos/dom_ui/language_customize_modifier_keys_handler.cc
new file mode 100644
index 0000000..954b971
--- /dev/null
+++ b/chrome/browser/chromeos/dom_ui/language_customize_modifier_keys_handler.cc
@@ -0,0 +1,78 @@
+// 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_customize_modifier_keys_handler.h"
+
+#include "app/l10n_util.h"
+#include "base/values.h"
+#include "cros/chromeos_keyboard.h"
+#include "grit/generated_resources.h"
+
+namespace {
+const struct ModifierKeysSelectItem {
+ int message_id;
+ chromeos::ModifierKey value;
+} kModifierKeysSelectItems[] = {
+ { IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_SEARCH_LABEL,
+ chromeos::kSearchKey },
+ { IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_LEFT_CTRL,
+ chromeos::kLeftControlKey },
+ { IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_LEFT_ALT,
+ chromeos::kLeftAltKey },
+ { IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_VOID,
+ chromeos::kVoidKey },
+ { IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_CAPSLOCK,
+ chromeos::kCapsLockKey },
+};
+
+const char* kDataValuesNames[] = {
+ "xkbRemapSearchKeyToValue",
+ "xkbRemapControlKeyToValue",
+ "xkbRemapAltKeyToValue",
+};
+} // namespace
+
+namespace chromeos {
+
+LanguageCustomizeModifierKeysHandler::LanguageCustomizeModifierKeysHandler() {
+}
+
+LanguageCustomizeModifierKeysHandler::~LanguageCustomizeModifierKeysHandler() {
+}
+
+void LanguageCustomizeModifierKeysHandler::GetLocalizedValues(
+ DictionaryValue* localized_strings) {
+ DCHECK(localized_strings);
+
+ localized_strings->SetString("xkbRemapSearchKeyToContent",
+ l10n_util::GetStringUTF16(
+ IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_SEARCH_LABEL));
+ localized_strings->SetString("xkbRemapControlKeyToContent",
+ l10n_util::GetStringUTF16(
+ IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_LEFT_CTRL_LABEL));
+ localized_strings->SetString("xkbRemapAltKeyToContent",
+ l10n_util::GetStringUTF16(
+ IDS_OPTIONS_SETTINGS_LANGUAGES_XKB_KEY_LEFT_ALT_LABEL));
+
+ for (size_t i = 0; i < arraysize(kDataValuesNames); ++i) {
+ ListValue* list_value = new ListValue();
+ for (size_t j = 0; j < arraysize(kModifierKeysSelectItems); ++j) {
+ const ModifierKey value = kModifierKeysSelectItems[j].value;
+ const int message_id = kModifierKeysSelectItems[j].message_id;
+ // Only the seach key can be remapped to the caps lock key.
+ if (kDataValuesNames[i] != std::string("xkbRemapSearchKeyToValue") &&
+ value == kCapsLockKey) {
+ continue;
+ }
+ ListValue* option = new ListValue();
+ option->Append(Value::CreateIntegerValue(value));
+ option->Append(Value::CreateStringValue(l10n_util::GetStringUTF16(
+ message_id)));
+ list_value->Append(option);
+ }
+ localized_strings->Set(kDataValuesNames[i], list_value);
+ }
+}
+
+} // namespace chromeos
diff --git a/chrome/browser/chromeos/dom_ui/language_customize_modifier_keys_handler.h b/chrome/browser/chromeos/dom_ui/language_customize_modifier_keys_handler.h
new file mode 100644
index 0000000..e790a9f
--- /dev/null
+++ b/chrome/browser/chromeos/dom_ui/language_customize_modifier_keys_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_CUSTOMIZE_MODIFIER_KEYS_HANDLER_H_ // NOLINT
+#define CHROME_BROWSER_CHROMEOS_DOM_UI_LANGUAGE_CUSTOMIZE_MODIFIER_KEYS_HANDLER_H_ // NOLINT
+#pragma once
+
+#include "chrome/browser/dom_ui/options_ui.h"
+#include "chrome/browser/pref_member.h"
+
+namespace chromeos {
+
+// Customize modifier keys overlay page UI handler.
+class LanguageCustomizeModifierKeysHandler : public OptionsPageUIHandler {
+ public:
+ LanguageCustomizeModifierKeysHandler();
+ virtual ~LanguageCustomizeModifierKeysHandler();
+
+ // OptionsUIHandler implementation.
+ virtual void GetLocalizedValues(DictionaryValue* localized_strings);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(LanguageCustomizeModifierKeysHandler);
+};
+
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_CHROMEOS_DOM_UI_LANGUAGE_CUSTOMIZE_MODIFIER_KEYS_HANDLER_H_ // NOLINT
diff --git a/chrome/browser/chromeos/dom_ui/system_options_handler.cc b/chrome/browser/chromeos/dom_ui/system_options_handler.cc
index 8dcaea0..7a532c9 100644
--- a/chrome/browser/chromeos/dom_ui/system_options_handler.cc
+++ b/chrome/browser/chromeos/dom_ui/system_options_handler.cc
@@ -57,6 +57,9 @@ void SystemOptionsHandler::GetLocalizedValues(
l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_SECTION_TITLE_LANGUAGE));
localized_strings->SetString("language_customize",
l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_LANGUAGES_CUSTOMIZE));
+ localized_strings->SetString("modifier_keys_customize",
+ l10n_util::GetStringUTF16(
+ IDS_OPTIONS_SETTINGS_LANGUAGES_MODIFIER_KEYS_CUSTOMIZE));
localized_strings->SetString("keyboard",
l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_SECTION_TITLE_KEYBOARD));
diff --git a/chrome/browser/dom_ui/options_ui.cc b/chrome/browser/dom_ui/options_ui.cc
index 8f7cb9b..38d75ee 100644
--- a/chrome/browser/dom_ui/options_ui.cc
+++ b/chrome/browser/dom_ui/options_ui.cc
@@ -59,6 +59,7 @@
#include "chrome/browser/chromeos/dom_ui/internet_options_handler.h"
#include "chrome/browser/chromeos/dom_ui/labs_handler.h"
#include "chrome/browser/chromeos/dom_ui/language_chewing_options_handler.h"
+#include "chrome/browser/chromeos/dom_ui/language_customize_modifier_keys_handler.h"
#include "chrome/browser/chromeos/dom_ui/language_hangul_options_handler.h"
#include "chrome/browser/chromeos/dom_ui/language_mozc_options_handler.h"
#include "chrome/browser/chromeos/dom_ui/language_options_handler.h"
@@ -158,6 +159,8 @@ OptionsUI::OptionsUI(TabContents* contents) : DOMUI(contents) {
AddOptionsPageUIHandler(localized_strings,
new chromeos::LanguageChewingOptionsHandler());
AddOptionsPageUIHandler(localized_strings,
+ new chromeos::LanguageCustomizeModifierKeysHandler());
+ AddOptionsPageUIHandler(localized_strings,
new chromeos::LanguageHangulOptionsHandler());
AddOptionsPageUIHandler(localized_strings,
new chromeos::LanguageMozcOptionsHandler());
diff --git a/chrome/browser/resources/options.html b/chrome/browser/resources/options.html
index 3e173e8..d781e85 100644
--- a/chrome/browser/resources/options.html
+++ b/chrome/browser/resources/options.html
@@ -145,6 +145,11 @@ function load() {
localStrings.getString('syncPage'),
'syncPage');
OptionsPage.registerSubPage(syncSettings);
+ var languageModifierKeysOverlay = new OptionsPage(
+ 'languageCustomizeModifierKeysOverlay',
+ localStrings.getString('languageCustomizeModifierKeysOverlay'),
+ 'languageCustomizeModifierKeysOverlay')
+ OptionsPage.registerOverlay(languageModifierKeysOverlay);
Preferences.getInstance().initialize();
OptionsPage.initialize();
@@ -212,6 +217,8 @@ window.onpopstate = function(e) {
<include src="options/passwords_remove_all_overlay.html">
<if expr="pp_ifdef('chromeos')">
<include src="options/chromeos_language_add_language_overlay.html">
+ <include
+ src="options/chromeos_language_customize_modifier_keys_overlay.html">
</if>
</div>
<div id="main-content">
diff --git a/chrome/browser/resources/options/chromeos_language_customize_modifier_keys_overlay.html b/chrome/browser/resources/options/chromeos_language_customize_modifier_keys_overlay.html
new file mode 100644
index 0000000..2d20806
--- /dev/null
+++ b/chrome/browser/resources/options/chromeos_language_customize_modifier_keys_overlay.html
@@ -0,0 +1,34 @@
+<div class="page hidden" id="languageCustomizeModifierKeysOverlay">
+ <section>
+ <table class="option-control-table">
+ <tr>
+ <td class="option-name" i18n-content="xkbRemapSearchKeyToContent"></td>
+ <td class="option-value">
+ <select id="xkb-remap-search-key-to" class="control"
+ pref="settings.language.xkb_remap_search_key_to"
+ data-values="xkbRemapSearchKeyToValue"></select>
+ </td>
+ </tr>
+ <tr>
+ <td class="option-name"
+ i18n-content="xkbRemapControlKeyToContent"></td>
+ <td class="option-value">
+ <select id="xkb-remap-control-key-to" class="control"
+ pref="settings.language.xkb_remap_control_key_to"
+ data-values="xkbRemapControlKeyToValue"></select>
+ </td>
+ </tr>
+ <tr>
+ <td class="option-name" i18n-content="xkbRemapAltKeyToContent"></td>
+ <td class="option-value">
+ <select id="xkb-remap-alt-key-to" class="control"
+ pref="settings.language.xkb_remap_alt_key_to"
+ data-values="xkbRemapAltKeyToValue"></select>
+ </td>
+ </tr>
+ </table>
+ </section>
+ <button id="languageCustomizeModifierKeysOverleyDismissButton"
+ i18n-content="close"
+ onclick="OptionsPage.clearOverlays();"></button>
+</div>
diff --git a/chrome/browser/resources/options/chromeos_system_options.html b/chrome/browser/resources/options/chromeos_system_options.html
index 37cadfc..b7bc161 100644
--- a/chrome/browser/resources/options/chromeos_system_options.html
+++ b/chrome/browser/resources/options/chromeos_system_options.html
@@ -51,6 +51,9 @@
<td class="option-name"><button id="language-button"
i18n-content="language_customize"></button>
</td>
+ <td class="option-name"><button id="modifier-keys-button"
+ i18n-content="modifier_keys_customize"></button>
+ </td>
</tr>
</table>
</section>
diff --git a/chrome/browser/resources/options/chromeos_system_options.js b/chrome/browser/resources/options/chromeos_system_options.js
index e758648..cef3507 100644
--- a/chrome/browser/resources/options/chromeos_system_options.js
+++ b/chrome/browser/resources/options/chromeos_system_options.js
@@ -37,6 +37,9 @@ cr.define('options', function() {
$('language-button').onclick = function(event) {
OptionsPage.showPageByName('language');
};
+ $('modifier-keys-button').onclick = function(event) {
+ OptionsPage.showOverlay('languageCustomizeModifierKeysOverlay');
+ };
}
};
@@ -46,4 +49,3 @@ cr.define('options', function() {
};
});
-
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 1d6efa4..c49f69d 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -426,6 +426,8 @@
'browser/chromeos/dom_ui/labs_handler.h',
'browser/chromeos/dom_ui/language_chewing_options_handler.cc',
'browser/chromeos/dom_ui/language_chewing_options_handler.h',
+ 'browser/chromeos/dom_ui/language_customize_modifier_keys_handler.cc',
+ 'browser/chromeos/dom_ui/language_customize_modifier_keys_handler.h',
'browser/chromeos/dom_ui/language_hangul_options_handler.cc',
'browser/chromeos/dom_ui/language_hangul_options_handler.h',
'browser/chromeos/dom_ui/language_mozc_options_handler.cc',