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

Side by Side Diff: chrome/browser/resources/options/pref_ui.js

Issue 393023006: Add settings for keyboard auto-repeat to options page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 5 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 | Annotate | Revision Log
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 var Preferences = options.Preferences; 7 var Preferences = options.Preferences;
8 8
9 /** 9 /**
10 * Allows an element to be disabled for several reasons. 10 * Allows an element to be disabled for several reasons.
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 * updates the associated pref. 74 * updates the associated pref.
75 * @param {Event} event Change event. 75 * @param {Event} event Change event.
76 * @private 76 * @private
77 */ 77 */
78 handleChange_: function(event) { 78 handleChange_: function(event) {
79 if (!this.customChangeHandler(event)) 79 if (!this.customChangeHandler(event))
80 this.updatePrefFromState_(); 80 this.updatePrefFromState_();
81 }, 81 },
82 82
83 /** 83 /**
84 * Update the input element's state when the associated pref changes. 84 * Handles changes to the pref. If a custom change handler does not suppress
85 * it, a default handler is invoked that update the input element's state.
85 * @param {Event} event Pref change event. 86 * @param {Event} event Pref change event.
86 * @private 87 * @private
87 */ 88 */
88 updateStateFromPref_: function(event) { 89 updateStateFromPref_: function(event) {
89 this.value = event.value.value; 90 if (!this.customPrefChangeHandler(event))
91 this.value = event.value.value;
90 }, 92 },
91 93
92 /** 94 /**
93 * See |updateDisabledState_| above. 95 * See |updateDisabledState_| above.
94 */ 96 */
95 setDisabled: function(reason, disabled) { 97 setDisabled: function(reason, disabled) {
96 updateDisabledState_(this, reason, disabled); 98 updateDisabledState_(this, reason, disabled);
97 }, 99 },
98 100
99 /** 101 /**
100 * Custom change handler that is invoked first when the user makes changes 102 * Custom change handler that is invoked first when the user makes changes
101 * to the input element's state. If it returns false, a default handler is 103 * to the input element's state. If it returns false, a default handler is
102 * invoked next that updates the associated pref. If it returns true, the 104 * invoked next that updates the associated pref. If it returns true, the
103 * default handler is suppressed (i.e., this works like stopPropagation or 105 * default handler is suppressed (i.e., this works like stopPropagation or
104 * cancelBubble). 106 * cancelBubble).
105 * @param {Event} event Input element change event. 107 * @param {Event} event Input element change event.
106 */ 108 */
107 customChangeHandler: function(event) { 109 customChangeHandler: function(event) {
108 return false; 110 return false;
109 }, 111 },
112
113 /**
114 * Custom change handler that is invoked first when the preference
115 * associated with the input element changes. If it returns false, a default
116 * handler is invoked next that updates the input element. If it returns
117 * true, the default handler is suppressed.
118 * @param {Event} event Input element change event.
119 */
120 customPrefChangeHandler: function(event) {
121 return false;
122 },
110 }; 123 };
111 124
112 /** 125 /**
113 * The name of the associated preference. 126 * The name of the associated preference.
114 * @type {string} 127 * @type {string}
115 */ 128 */
116 cr.defineProperty(PrefInputElement, 'pref', cr.PropertyKind.ATTR); 129 cr.defineProperty(PrefInputElement, 'pref', cr.PropertyKind.ATTR);
117 130
118 /** 131 /**
119 * The data type of the associated preference, only relevant for derived 132 * The data type of the associated preference, only relevant for derived
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 Preferences.setBooleanPref(this.pref, value, 190 Preferences.setBooleanPref(this.pref, value,
178 !this.dialogPref, this.metric); 191 !this.dialogPref, this.metric);
179 }, 192 },
180 193
181 /** 194 /**
182 * Update the checkbox state when the associated pref changes. 195 * Update the checkbox state when the associated pref changes.
183 * @param {Event} event Pref change event. 196 * @param {Event} event Pref change event.
184 * @private 197 * @private
185 */ 198 */
186 updateStateFromPref_: function(event) { 199 updateStateFromPref_: function(event) {
200 if (this.customPrefChangeHandler(event))
201 return;
187 var value = Boolean(event.value.value); 202 var value = Boolean(event.value.value);
188 this.checked = this.inverted_pref ? !value : value; 203 this.checked = this.inverted_pref ? !value : value;
189 }, 204 },
190 }; 205 };
191 206
192 /** 207 /**
193 * Whether the mapping between checkbox state and associated pref is inverted. 208 * Whether the mapping between checkbox state and associated pref is inverted.
194 * @type {boolean} 209 * @type {boolean}
195 */ 210 */
196 cr.defineProperty(PrefCheckbox, 'inverted_pref', cr.PropertyKind.BOOL_ATTR); 211 cr.defineProperty(PrefCheckbox, 'inverted_pref', cr.PropertyKind.BOOL_ATTR);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 !this.dialogPref, this.metric); 272 !this.dialogPref, this.metric);
258 } 273 }
259 }, 274 },
260 275
261 /** 276 /**
262 * Update the radio button state when the associated pref changes. 277 * Update the radio button state when the associated pref changes.
263 * @param {Event} event Pref change event. 278 * @param {Event} event Pref change event.
264 * @private 279 * @private
265 */ 280 */
266 updateStateFromPref_: function(event) { 281 updateStateFromPref_: function(event) {
267 this.checked = this.value == String(event.value.value); 282 if (!this.customPrefChangeHandler(event))
283 this.checked = this.value == String(event.value.value);
268 }, 284 },
269 }; 285 };
270 286
271 ///////////////////////////////////////////////////////////////////////////// 287 /////////////////////////////////////////////////////////////////////////////
272 // PrefRange class: 288 // PrefRange class:
273 289
274 // Define a constructor that uses an input element as its underlying element. 290 // Define a constructor that uses an input element as its underlying element.
275 var PrefRange = cr.ui.define('input'); 291 var PrefRange = cr.ui.define('input');
276 292
277 PrefRange.prototype = { 293 PrefRange.prototype = {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 * handler is invoked that updates the associated pref. 339 * handler is invoked that updates the associated pref.
324 * @param {Event} event Change event. 340 * @param {Event} event Change event.
325 * @private 341 * @private
326 */ 342 */
327 handleRelease_: function(event) { 343 handleRelease_: function(event) {
328 if (!this.customChangeHandler(event)) 344 if (!this.customChangeHandler(event))
329 this.updatePrefFromState_(); 345 this.updatePrefFromState_();
330 }, 346 },
331 347
332 /** 348 /**
333 * Update the slider position when the associated pref changes. 349 * Handles changes to the pref associated with the slider. If a custom
350 * change handler does not suppress it, a default handler is invoked that
351 * updates the slider position.
334 * @param {Event} event Pref change event. 352 * @param {Event} event Pref change event.
335 * @private 353 * @private
336 */ 354 */
337 updateStateFromPref_: function(event) { 355 updateStateFromPref_: function(event) {
356 if (this.customPrefChangeHandler(event))
357 return;
338 var value = event.value.value; 358 var value = event.value.value;
339 this.value = this.valueMap ? this.valueMap.indexOf(value) : value; 359 this.value = this.valueMap ? this.valueMap.indexOf(value) : value;
340 }, 360 },
341 361
342 /** 362 /**
343 * Map slider position to the range of values provided by the client, 363 * Map slider position to the range of values provided by the client,
344 * represented by |valueMap|. 364 * represented by |valueMap|.
345 * @param {number} position The slider position to map. 365 * @param {number} position The slider position to map.
346 */ 366 */
347 mapPositionToPref: function(position) { 367 mapPositionToPref: function(position) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 this.dataType); 407 this.dataType);
388 } 408 }
389 }, 409 },
390 410
391 /** 411 /**
392 * Update the selected item when the associated pref changes. 412 * Update the selected item when the associated pref changes.
393 * @param {Event} event Pref change event. 413 * @param {Event} event Pref change event.
394 * @private 414 * @private
395 */ 415 */
396 updateStateFromPref_: function(event) { 416 updateStateFromPref_: function(event) {
417 if (this.customPrefChangeHandler(event))
418 return;
419
397 // Make sure the value is a string, because the value is stored as a 420 // Make sure the value is a string, because the value is stored as a
398 // string in the HTMLOptionElement. 421 // string in the HTMLOptionElement.
399 value = String(event.value.value); 422 value = String(event.value.value);
400 423
401 var found = false; 424 var found = false;
402 for (var i = 0; i < this.options.length; i++) { 425 for (var i = 0; i < this.options.length; i++) {
403 if (this.options[i].value == value) { 426 if (this.options[i].value == value) {
404 this.selectedIndex = i; 427 this.selectedIndex = i;
405 found = true; 428 found = true;
406 } 429 }
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 PrefNumber: PrefNumber, 578 PrefNumber: PrefNumber,
556 PrefRadio: PrefRadio, 579 PrefRadio: PrefRadio,
557 PrefRange: PrefRange, 580 PrefRange: PrefRange,
558 PrefSelect: PrefSelect, 581 PrefSelect: PrefSelect,
559 PrefTextField: PrefTextField, 582 PrefTextField: PrefTextField,
560 PrefPortNumber: PrefPortNumber, 583 PrefPortNumber: PrefPortNumber,
561 PrefButton: PrefButton 584 PrefButton: PrefButton
562 }; 585 };
563 586
564 }); 587 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698