diff options
author | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-24 04:44:46 +0000 |
---|---|---|
committer | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-24 04:44:46 +0000 |
commit | c5419ba7b78b4ff4c00658586b240e076496a3d2 (patch) | |
tree | bc68e7f4f74d89f53f50b2b79e0ac3a72ef3b5cc | |
parent | d9ddc963c18de9673711493052df08df3c838d00 (diff) | |
download | chromium_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
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', |