Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Side by Side Diff: chrome/browser/resources/options/chromeos/keyboard_overlay.js

Issue 2939273002: DO NOT SUBMIT: what chrome/browser/resources/ could eventually look like with clang-format (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.define('options', function() { 5 cr.define('options', function() {
6 6
7 /** 7 /**
8 * Auto-repeat delays (in ms) for the corresponding slider values, from 8 * Auto-repeat delays (in ms) for the corresponding slider values, from
9 * long to short. The values were chosen to provide a large range while giving 9 * long to short. The values were chosen to provide a large range while giving
10 * several options near the defaults. 10 * several options near the defaults.
11 * @type {!Array<number>} 11 * @type {!Array<number>}
12 * @const 12 * @const
13 */ 13 */
14 var AUTO_REPEAT_DELAYS = 14 var AUTO_REPEAT_DELAYS = [2000, 1500, 1000, 500, 300, 200, 150];
15 [2000, 1500, 1000, 500, 300, 200, 150];
16 15
17 /** 16 /**
18 * Auto-repeat intervals (in ms) for the corresponding slider values, from 17 * Auto-repeat intervals (in ms) for the corresponding slider values, from
19 * long to short. The slider itself is labeled "rate", the inverse of 18 * long to short. The slider itself is labeled "rate", the inverse of
20 * interval, and goes from slow (long interval) to fast (short interval). 19 * interval, and goes from slow (long interval) to fast (short interval).
21 * @type {!Array<number>} 20 * @type {!Array<number>}
22 * @const 21 * @const
23 */ 22 */
24 var AUTO_REPEAT_INTERVALS = 23 var AUTO_REPEAT_INTERVALS = [2000, 1000, 500, 300, 200, 100, 50, 30, 20];
25 [2000, 1000, 500, 300, 200, 100, 50, 30, 20];
26 24
27 /** 25 /**
28 * Encapsulated handling of the keyboard overlay. 26 * Encapsulated handling of the keyboard overlay.
29 * @constructor 27 * @constructor
30 * @extends {options.SettingsDialog} 28 * @extends {options.SettingsDialog}
31 */ 29 */
32 function KeyboardOverlay() { 30 function KeyboardOverlay() {
33 options.SettingsDialog.call(this, 'keyboard-overlay', 31 options.SettingsDialog.call(
34 loadTimeData.getString('keyboardOverlayTabTitle'), 32 this, 'keyboard-overlay',
35 'keyboard-overlay', 33 loadTimeData.getString('keyboardOverlayTabTitle'), 'keyboard-overlay',
36 assertInstanceof($('keyboard-confirm'), HTMLButtonElement), 34 assertInstanceof($('keyboard-confirm'), HTMLButtonElement),
37 assertInstanceof($('keyboard-cancel'), HTMLButtonElement)); 35 assertInstanceof($('keyboard-cancel'), HTMLButtonElement));
38 } 36 }
39 37
40 cr.addSingletonGetter(KeyboardOverlay); 38 cr.addSingletonGetter(KeyboardOverlay);
41 39
42 KeyboardOverlay.prototype = { 40 KeyboardOverlay.prototype = {
43 __proto__: options.SettingsDialog.prototype, 41 __proto__: options.SettingsDialog.prototype,
44 42
45 /** @override */ 43 /** @override */
(...skipping 10 matching lines...) Expand all
56 this.handleAutoRepeatDelayPrefChange_.bind(this); 54 this.handleAutoRepeatDelayPrefChange_.bind(this);
57 55
58 var autoRepeatIntervalRange = $('auto-repeat-interval-range'); 56 var autoRepeatIntervalRange = $('auto-repeat-interval-range');
59 autoRepeatIntervalRange.valueMap = AUTO_REPEAT_INTERVALS; 57 autoRepeatIntervalRange.valueMap = AUTO_REPEAT_INTERVALS;
60 autoRepeatIntervalRange.max = AUTO_REPEAT_INTERVALS.length - 1; 58 autoRepeatIntervalRange.max = AUTO_REPEAT_INTERVALS.length - 1;
61 autoRepeatIntervalRange.customPrefChangeHandler = 59 autoRepeatIntervalRange.customPrefChangeHandler =
62 this.handleAutoRepeatIntervalPrefChange_.bind(this); 60 this.handleAutoRepeatIntervalPrefChange_.bind(this);
63 61
64 $('languages-and-input-settings').onclick = function(e) { 62 $('languages-and-input-settings').onclick = function(e) {
65 PageManager.showPageByName('languages'); 63 PageManager.showPageByName('languages');
66 chrome.send('coreOptionsUserMetricsAction', 64 chrome.send(
67 ['Options_KeyboardShowLanguageSettings']); 65 'coreOptionsUserMetricsAction',
66 ['Options_KeyboardShowLanguageSettings']);
68 }; 67 };
69 68
70 $('keyboard-shortcuts').onclick = function(e) { 69 $('keyboard-shortcuts').onclick = function(e) {
71 chrome.send('showKeyboardShortcuts'); 70 chrome.send('showKeyboardShortcuts');
72 chrome.send('coreOptionsUserMetricsAction', 71 chrome.send(
73 ['Options_KeyboardShowKeyboardShortcuts']); 72 'coreOptionsUserMetricsAction',
73 ['Options_KeyboardShowKeyboardShortcuts']);
74 }; 74 };
75 }, 75 },
76 76
77 /** 77 /**
78 * Handles auto-repeat enabled pref change and allows the event to continue 78 * Handles auto-repeat enabled pref change and allows the event to continue
79 * propagating. 79 * propagating.
80 * @param {Event} e Change event. 80 * @param {Event} e Change event.
81 * @return {boolean} Whether the event has finished being handled. 81 * @return {boolean} Whether the event has finished being handled.
82 * @private 82 * @private
83 */ 83 */
84 handleAutoRepeatEnabledPrefChange_: function(e) { 84 handleAutoRepeatEnabledPrefChange_: function(e) {
85 $('auto-repeat-settings-section').classList.toggle('disabled', 85 $('auto-repeat-settings-section')
86 !e.value.value); 86 .classList.toggle('disabled', !e.value.value);
87 $('auto-repeat-delay-range').disabled = 87 $('auto-repeat-delay-range').disabled =
88 $('auto-repeat-interval-range').disabled = !e.value.value; 88 $('auto-repeat-interval-range').disabled = !e.value.value;
89 return false; 89 return false;
90 }, 90 },
91 91
92 /** 92 /**
93 * Handles auto-repeat delay pref change and stops the event from 93 * Handles auto-repeat delay pref change and stops the event from
94 * propagating. 94 * propagating.
95 * @param {Event} e Change event. 95 * @param {Event} e Change event.
96 * @return {boolean} Whether the event has finished being handled. 96 * @return {boolean} Whether the event has finished being handled.
97 * @private 97 * @private
98 */ 98 */
99 handleAutoRepeatDelayPrefChange_: function(e) { 99 handleAutoRepeatDelayPrefChange_: function(e) {
100 this.updateSliderFromValue_('auto-repeat-delay-range', 100 this.updateSliderFromValue_(
101 e.value.value, 101 'auto-repeat-delay-range', e.value.value, AUTO_REPEAT_DELAYS);
102 AUTO_REPEAT_DELAYS);
103 return true; 102 return true;
104 }, 103 },
105 104
106 /** 105 /**
107 * Handles auto-repeat interval pref change and stops the event from 106 * Handles auto-repeat interval pref change and stops the event from
108 * propagating. 107 * propagating.
109 * @param {Event} e Change event. 108 * @param {Event} e Change event.
110 * @return {boolean} Whether the event has finished being handled. 109 * @return {boolean} Whether the event has finished being handled.
111 * @private 110 * @private
112 */ 111 */
113 handleAutoRepeatIntervalPrefChange_: function(e) { 112 handleAutoRepeatIntervalPrefChange_: function(e) {
114 this.updateSliderFromValue_('auto-repeat-interval-range', 113 this.updateSliderFromValue_(
115 e.value.value, 114 'auto-repeat-interval-range', e.value.value, AUTO_REPEAT_INTERVALS);
116 AUTO_REPEAT_INTERVALS);
117 return true; 115 return true;
118 }, 116 },
119 117
120 /** 118 /**
121 * Show/hide the caps lock remapping section. 119 * Show/hide the caps lock remapping section.
122 * @private 120 * @private
123 */ 121 */
124 showCapsLockOptions_: function(show) { 122 showCapsLockOptions_: function(show) {
125 $('caps-lock-remapping-section').hidden = !show; 123 $('caps-lock-remapping-section').hidden = !show;
126 }, 124 },
(...skipping 12 matching lines...) Expand all
139 * @param {string} id The slider's ID. 137 * @param {string} id The slider's ID.
140 * @param {number} value The value to find. 138 * @param {number} value The value to find.
141 * @param {!Array<number>} values The array to search. 139 * @param {!Array<number>} values The array to search.
142 * @private 140 * @private
143 */ 141 */
144 updateSliderFromValue_: function(id, value, values) { 142 updateSliderFromValue_: function(id, value, values) {
145 var index = values.indexOf(value); 143 var index = values.indexOf(value);
146 if (index == -1) { 144 if (index == -1) {
147 var closestValue = Infinity; 145 var closestValue = Infinity;
148 for (var i = 0; i < values.length; i++) { 146 for (var i = 0; i < values.length; i++) {
149 if (Math.abs(values[i] - value) < 147 if (Math.abs(values[i] - value) < Math.abs(closestValue - value)) {
150 Math.abs(closestValue - value)) {
151 closestValue = values[i]; 148 closestValue = values[i];
152 index = i; 149 index = i;
153 } 150 }
154 } 151 }
155 152
156 assert(index != -1, 153 assert(
157 'Failed to update ' + id + ' from pref with value ' + value); 154 index != -1,
155 'Failed to update ' + id + ' from pref with value ' + value);
158 } 156 }
159 157
160 $(id).value = index; 158 $(id).value = index;
161 }, 159 },
162 }; 160 };
163 161
164 // Forward public APIs to private implementations. 162 // Forward public APIs to private implementations.
165 cr.makePublic(KeyboardOverlay, [ 163 cr.makePublic(KeyboardOverlay, [
166 'showCapsLockOptions', 164 'showCapsLockOptions',
167 'showDiamondKeyOptions', 165 'showDiamondKeyOptions',
168 ]); 166 ]);
169 167
170 // Export 168 // Export
171 return { 169 return {KeyboardOverlay: KeyboardOverlay};
172 KeyboardOverlay: KeyboardOverlay
173 };
174 }); 170 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698