OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // PrefCheckbox class: | 9 // PrefCheckbox class: |
10 | 10 |
(...skipping 15 matching lines...) Expand all Loading... |
26 Preferences.getInstance().addEventListener(this.pref, | 26 Preferences.getInstance().addEventListener(this.pref, |
27 function(event) { | 27 function(event) { |
28 self.managed = event.value['managed'] | 28 self.managed = event.value['managed'] |
29 self.disabled = self.managed; | 29 self.disabled = self.managed; |
30 self.checked = event.value['value']; | 30 self.checked = event.value['value']; |
31 }); | 31 }); |
32 | 32 |
33 // Listen to user events. | 33 // Listen to user events. |
34 this.addEventListener('click', | 34 this.addEventListener('click', |
35 function(e) { | 35 function(e) { |
36 Preferences.setBooleanPref(self.pref, self.checked); | 36 Preferences.setBooleanPref(self.pref, self.checked, self.metric); |
37 }); | 37 }); |
38 } | 38 } |
39 }; | 39 }; |
40 | 40 |
41 /** | 41 /** |
42 * The preference name. | 42 * The preference name. |
43 * @type {string} | 43 * @type {string} |
44 */ | 44 */ |
45 cr.defineProperty(PrefCheckbox, 'pref', cr.PropertyKind.ATTR); | 45 cr.defineProperty(PrefCheckbox, 'pref', cr.PropertyKind.ATTR); |
46 | 46 |
| 47 /** |
| 48 * The user metric string. |
| 49 * @type {string} |
| 50 */ |
| 51 cr.defineProperty(PrefCheckbox, 'metric', cr.PropertyKind.ATTR); |
| 52 |
47 ///////////////////////////////////////////////////////////////////////////// | 53 ///////////////////////////////////////////////////////////////////////////// |
48 // PrefRadio class: | 54 // PrefRadio class: |
49 | 55 |
50 //Define a constructor that uses an input element as its underlying element. | 56 //Define a constructor that uses an input element as its underlying element. |
51 var PrefRadio = cr.ui.define('input'); | 57 var PrefRadio = cr.ui.define('input'); |
52 | 58 |
53 PrefRadio.prototype = { | 59 PrefRadio.prototype = { |
54 // Set up the prototype chain | 60 // Set up the prototype chain |
55 __proto__: HTMLInputElement.prototype, | 61 __proto__: HTMLInputElement.prototype, |
56 | 62 |
(...skipping 10 matching lines...) Expand all Loading... |
67 self.managed = event.value['managed'] | 73 self.managed = event.value['managed'] |
68 self.disabled = self.managed; | 74 self.disabled = self.managed; |
69 self.checked = String(event.value['value']) == self.value; | 75 self.checked = String(event.value['value']) == self.value; |
70 }); | 76 }); |
71 | 77 |
72 // Listen to user events. | 78 // Listen to user events. |
73 this.addEventListener('change', | 79 this.addEventListener('change', |
74 function(e) { | 80 function(e) { |
75 if(self.value == 'true' || self.value == 'false') { | 81 if(self.value == 'true' || self.value == 'false') { |
76 Preferences.setBooleanPref(self.pref, | 82 Preferences.setBooleanPref(self.pref, |
77 self.value == 'true'); | 83 self.value == 'true', self.metric); |
78 } else { | 84 } else { |
79 Preferences.setIntegerPref(self.pref, | 85 Preferences.setIntegerPref(self.pref, |
80 parseInt(self.value, 10)); | 86 parseInt(self.value, 10), self.metric); |
81 } | 87 } |
82 }); | 88 }); |
83 }, | 89 }, |
84 | 90 |
85 /** | 91 /** |
86 * Getter for preference name attribute. | 92 * Getter for preference name attribute. |
87 */ | 93 */ |
88 get pref() { | 94 get pref() { |
89 return this.getAttribute('pref'); | 95 return this.getAttribute('pref'); |
90 }, | 96 }, |
91 | 97 |
92 /** | 98 /** |
93 * Setter for preference name attribute. | 99 * Setter for preference name attribute. |
94 */ | 100 */ |
95 set pref(name) { | 101 set pref(name) { |
96 this.setAttribute('pref', name); | 102 this.setAttribute('pref', name); |
97 } | 103 } |
98 }; | 104 }; |
99 | 105 |
| 106 /** |
| 107 * The user metric string. |
| 108 * @type {string} |
| 109 */ |
| 110 cr.defineProperty(PrefRadio, 'metric', cr.PropertyKind.ATTR); |
100 | 111 |
101 ///////////////////////////////////////////////////////////////////////////// | 112 ///////////////////////////////////////////////////////////////////////////// |
102 // PrefNumeric class: | 113 // PrefNumeric class: |
103 | 114 |
104 // Define a constructor that uses an input element as its underlying element. | 115 // Define a constructor that uses an input element as its underlying element. |
105 var PrefNumeric = function() {}; | 116 var PrefNumeric = function() {}; |
106 PrefNumeric.prototype = { | 117 PrefNumeric.prototype = { |
107 // Set up the prototype chain | 118 // Set up the prototype chain |
108 __proto__: HTMLInputElement.prototype, | 119 __proto__: HTMLInputElement.prototype, |
109 | 120 |
110 /** | 121 /** |
111 * Initialization function for the cr.ui framework. | 122 * Initialization function for the cr.ui framework. |
112 */ | 123 */ |
113 decorate: function() { | 124 decorate: function() { |
114 var self = this; | 125 var self = this; |
115 | 126 |
116 // Listen to pref changes. | 127 // Listen to pref changes. |
117 Preferences.getInstance().addEventListener(this.pref, | 128 Preferences.getInstance().addEventListener(this.pref, |
118 function(event) { | 129 function(event) { |
119 self.managed = event.value['managed'] | 130 self.managed = event.value['managed'] |
120 self.disabled = self.managed; | 131 self.disabled = self.managed; |
121 self.value = event.value['value']; | 132 self.value = event.value['value']; |
122 }); | 133 }); |
123 | 134 |
124 // Listen to user events. | 135 // Listen to user events. |
125 this.addEventListener('change', | 136 this.addEventListener('change', |
126 function(e) { | 137 function(e) { |
127 Preferences.setIntegerPref(self.pref, self.value); | 138 Preferences.setIntegerPref(self.pref, self.value, self.metric); |
128 }); | 139 }); |
129 } | 140 } |
130 }; | 141 }; |
131 | 142 |
132 /** | 143 /** |
133 * The preference name. | 144 * The preference name. |
134 * @type {string} | 145 * @type {string} |
135 */ | 146 */ |
136 cr.defineProperty(PrefNumeric, 'pref', cr.PropertyKind.ATTR); | 147 cr.defineProperty(PrefNumeric, 'pref', cr.PropertyKind.ATTR); |
137 | 148 |
| 149 /** |
| 150 * The user metric string. |
| 151 * @type {string} |
| 152 */ |
| 153 cr.defineProperty(PrefNumeric, 'metric', cr.PropertyKind.ATTR); |
| 154 |
138 ///////////////////////////////////////////////////////////////////////////// | 155 ///////////////////////////////////////////////////////////////////////////// |
139 // PrefNumber class: | 156 // PrefNumber class: |
140 | 157 |
141 // Define a constructor that uses an input element as its underlying element. | 158 // Define a constructor that uses an input element as its underlying element. |
142 var PrefNumber = cr.ui.define('input'); | 159 var PrefNumber = cr.ui.define('input'); |
143 | 160 |
144 PrefNumber.prototype = { | 161 PrefNumber.prototype = { |
145 // Set up the prototype chain | 162 // Set up the prototype chain |
146 __proto__: PrefNumeric.prototype, | 163 __proto__: PrefNumeric.prototype, |
147 | 164 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 // Item not found, select first item. | 219 // Item not found, select first item. |
203 self.selectedIndex = 0; | 220 self.selectedIndex = 0; |
204 }); | 221 }); |
205 | 222 |
206 // Listen to user events. | 223 // Listen to user events. |
207 this.addEventListener('change', | 224 this.addEventListener('change', |
208 function(e) { | 225 function(e) { |
209 switch(self.dataType) { | 226 switch(self.dataType) { |
210 case 'number': | 227 case 'number': |
211 Preferences.setIntegerPref(self.pref, | 228 Preferences.setIntegerPref(self.pref, |
212 self.options[self.selectedIndex].value); | 229 self.options[self.selectedIndex].value, self.metric); |
213 break; | 230 break; |
214 case 'boolean': | 231 case 'boolean': |
215 Preferences.setBooleanValue(self.pref, | 232 Preferences.setBooleanValue(self.pref, |
216 self.options[self.selectedIndex].value); | 233 self.options[self.selectedIndex].value, self.metric); |
217 break; | 234 break; |
218 case 'string': | 235 case 'string': |
219 Preferences.setStringPref(self.pref, | 236 Preferences.setStringPref(self.pref, |
220 self.options[self.selectedIndex].value); | 237 self.options[self.selectedIndex].value, self.metric); |
221 break; | 238 break; |
222 } | 239 } |
223 }); | 240 }); |
224 | 241 |
225 // Initialize options. | 242 // Initialize options. |
226 this.ownerDocument.addEventListener('DOMContentLoaded', | 243 this.ownerDocument.addEventListener('DOMContentLoaded', |
227 function() { | 244 function() { |
228 var values = self.getAttribute('data-values'); | 245 var values = self.getAttribute('data-values'); |
229 if (values) { | 246 if (values) { |
230 self.initializeValues(templateData[values]); | 247 self.initializeValues(templateData[values]); |
(...skipping 17 matching lines...) Expand all Loading... |
248 }, this); | 265 }, this); |
249 } | 266 } |
250 }; | 267 }; |
251 | 268 |
252 /** | 269 /** |
253 * The preference name. | 270 * The preference name. |
254 * @type {string} | 271 * @type {string} |
255 */ | 272 */ |
256 cr.defineProperty(PrefSelect, 'pref', cr.PropertyKind.ATTR); | 273 cr.defineProperty(PrefSelect, 'pref', cr.PropertyKind.ATTR); |
257 | 274 |
| 275 /** |
| 276 * The user metric string. |
| 277 * @type {string} |
| 278 */ |
| 279 cr.defineProperty(PrefSelect, 'metric', cr.PropertyKind.ATTR); |
| 280 |
258 ///////////////////////////////////////////////////////////////////////////// | 281 ///////////////////////////////////////////////////////////////////////////// |
259 // PrefTextField class: | 282 // PrefTextField class: |
260 | 283 |
261 // Define a constructor that uses an input element as its underlying element. | 284 // Define a constructor that uses an input element as its underlying element. |
262 var PrefTextField = cr.ui.define('input'); | 285 var PrefTextField = cr.ui.define('input'); |
263 | 286 |
264 PrefTextField.prototype = { | 287 PrefTextField.prototype = { |
265 // Set up the prototype chain | 288 // Set up the prototype chain |
266 __proto__: HTMLInputElement.prototype, | 289 __proto__: HTMLInputElement.prototype, |
267 | 290 |
268 /** | 291 /** |
269 * Initialization function for the cr.ui framework. | 292 * Initialization function for the cr.ui framework. |
270 */ | 293 */ |
271 decorate: function() { | 294 decorate: function() { |
272 var self = this; | 295 var self = this; |
273 | 296 |
274 // Listen to pref changes. | 297 // Listen to pref changes. |
275 Preferences.getInstance().addEventListener(this.pref, | 298 Preferences.getInstance().addEventListener(this.pref, |
276 function(event) { | 299 function(event) { |
277 self.managed = event.value['managed'] | 300 self.managed = event.value['managed'] |
278 self.disabled = self.managed; | 301 self.disabled = self.managed; |
279 self.value = event.value['value']; | 302 self.value = event.value['value']; |
280 }); | 303 }); |
281 | 304 |
282 // Listen to user events. | 305 // Listen to user events. |
283 this.addEventListener('change', | 306 this.addEventListener('change', |
284 function(e) { | 307 function(e) { |
285 Preferences.setStringPref(self.pref, self.value); | 308 Preferences.setStringPref(self.pref, self.value, self.metric); |
286 }); | 309 }); |
287 | 310 |
288 window.addEventListener('unload', | 311 window.addEventListener('unload', |
289 function() { | 312 function() { |
290 if (document.activeElement == self) | 313 if (document.activeElement == self) |
291 self.blur(); | 314 self.blur(); |
292 }); | 315 }); |
293 } | 316 } |
294 }; | 317 }; |
295 | 318 |
296 /** | 319 /** |
297 * The preference name. | 320 * The preference name. |
298 * @type {string} | 321 * @type {string} |
299 */ | 322 */ |
300 cr.defineProperty(PrefTextField, 'pref', cr.PropertyKind.ATTR); | 323 cr.defineProperty(PrefTextField, 'pref', cr.PropertyKind.ATTR); |
301 | 324 |
| 325 /** |
| 326 * The user metric string. |
| 327 * @type {string} |
| 328 */ |
| 329 cr.defineProperty(PrefTextField, 'metric', cr.PropertyKind.ATTR); |
| 330 |
302 // Export | 331 // Export |
303 return { | 332 return { |
304 PrefCheckbox: PrefCheckbox, | 333 PrefCheckbox: PrefCheckbox, |
305 PrefNumber: PrefNumber, | 334 PrefNumber: PrefNumber, |
306 PrefNumeric: PrefNumeric, | 335 PrefNumeric: PrefNumeric, |
307 PrefRadio: PrefRadio, | 336 PrefRadio: PrefRadio, |
308 PrefRange: PrefRange, | 337 PrefRange: PrefRange, |
309 PrefSelect: PrefSelect, | 338 PrefSelect: PrefSelect, |
310 PrefTextField: PrefTextField | 339 PrefTextField: PrefTextField |
311 }; | 340 }; |
312 | 341 |
313 }); | 342 }); |
314 | 343 |
OLD | NEW |