Index: chrome/browser/resources/settings/device_page/keyboard.js |
diff --git a/chrome/browser/resources/settings/device_page/keyboard.js b/chrome/browser/resources/settings/device_page/keyboard.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cbe5507a0a8771cd887c8fceff5ba895f907be81 |
--- /dev/null |
+++ b/chrome/browser/resources/settings/device_page/keyboard.js |
@@ -0,0 +1,89 @@ |
+// Copyright 2016 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. |
+ |
+/** |
+ * @fileoverview |
+ * 'settings-keyboard' is the settings subpage with keyboard settings. |
+ * |
+ * @group Chrome Settings Elements |
+ */ |
+ |
+// TODO(michaelpg): The docs below are duplicates of settings_dropdown_menu, |
+// because we can't depend on settings_dropdown_menu in compiled_resources2.gyp |
+// withhout first converting settings_dropdown_menu to compiled_resources2.gyp. |
+// After the conversion, we should remove these. |
+/** @typedef {{name: string, value: (number|string)}} */ |
+var DropdownMenuOption; |
+/** @typedef {!Array<!DropdownMenuOption>} */ |
+var DropdownMenuOptionList; |
+ |
+Polymer({ |
+ is: 'settings-keyboard', |
+ |
+ behaviors: [ |
+ I18nBehavior, |
+ ], |
+ |
+ properties: { |
+ /** Preferences state. */ |
+ prefs: { |
+ type: Object, |
+ notify: true, |
+ }, |
+ |
+ /** @private Whether to show Caps Lock options. */ |
+ showCapsLock_: Boolean, |
+ |
+ /** @private Whether to show diamond key options. */ |
+ showDiamondKey_: Boolean, |
+ |
+ /** @private {!DropdownMenuOptionList} Menu items for key mapping. */ |
+ keyMapTargets_: Object, |
+ |
+ /** |
+ * @private {!DropdownMenuOptionList} Menu items for key mapping, including |
+ * Caps Lock. |
+ */ |
+ keyMapTargetsWithCapsLock_: Object, |
+ }, |
+ |
+ /** @override */ |
+ ready: function() { |
+ cr.addWebUIListener('show-keys-changed', this.onShowKeysChange_.bind(this)); |
+ chrome.send('initializeKeyboardSettings'); |
+ this.setUpKeyMapTargets_(); |
+ }, |
+ |
+ /** |
+ * Initializes the dropdown menu options for remapping keys. |
+ * @private |
+ */ |
+ setUpKeyMapTargets_: function() { |
+ this.keyMapTargets_ = [ |
+ {value: 0, name: loadTimeData.getString('keyboardKeySearch')}, |
+ {value: 1, name: loadTimeData.getString('keyboardKeyCtrl')}, |
+ {value: 2, name: loadTimeData.getString('keyboardKeyAlt')}, |
+ {value: 3, name: loadTimeData.getString('keyboardKeyDisabled')}, |
+ {value: 5, name: loadTimeData.getString('keyboardKeyEscape')}, |
+ ]; |
+ |
+ var keyMapTargetsWithCapsLock = this.keyMapTargets_.slice(); |
+ // Add Caps Lock, for keys allowed to be mapped to Caps Lock. |
+ keyMapTargetsWithCapsLock.splice(4, 0, { |
+ value: 4, name: loadTimeData.getString('keyboardKeyCapsLock'), |
+ }); |
+ this.keyMapTargetsWithCapsLock_ = keyMapTargetsWithCapsLock; |
+ }, |
+ |
+ /** |
+ * Handler for updating which keys to show. |
+ * @param {boolean} showCapsLock |
+ * @param {boolean} showDiamondKey |
+ * @private |
+ */ |
+ onShowKeysChange_: function(showCapsLock, showDiamondKey) { |
+ this.showCapsLock_ = showCapsLock; |
+ this.showDiamondKey_ = showDiamondKey; |
+ }, |
+}); |