Index: chrome/browser/resources/options/font_settings_ui.js |
=================================================================== |
--- chrome/browser/resources/options/font_settings_ui.js (revision 0) |
+++ chrome/browser/resources/options/font_settings_ui.js (revision 0) |
@@ -0,0 +1,83 @@ |
+// 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. |
+ |
+cr.define('options', function() { |
+ |
+ ///////////////////////////////////////////////////////////////////////////// |
+ // MinimumFontSizeSelect class: |
+ |
+ // Define a constructor that uses a select element as its underlying element. |
+ var MinimumFontSizeSelect = cr.ui.define('select'); |
+ |
+ MinimumFontSizeSelect.prototype = { |
+ // Set up the prototype chain |
+ __proto__: HTMLSelectElement.prototype, |
+ |
+ /** |
+ * Initialization function for the cr.ui framework. |
+ */ |
+ decorate: function() { |
+ var self = this; |
+ |
+ // Listen to pref changes. |
+ Preferences.getInstance().addEventListener( |
+ 'webkit.webprefs.minimum_font_size', function(event) { |
+ var value = (event.value && event.value['value'] != undefined) |
+ ? event.value['value'] : event.value; |
+ self.managed = (event.value && event.value['managed'] != undefined) |
+ ? event.value['managed'] : false; |
+ self.disabled = self.managed; |
+ for (var i = 0; i < self.options.length; i++) { |
+ if (self.options[i].value == value) { |
+ self.selectedIndex = i; |
+ return; |
+ } |
+ } |
+ // Item not found, select first item. |
+ self.selectedIndex = 0; |
+ }); |
+ |
+ // Listen to user events. |
+ this.addEventListener('change', |
+ function(e) { |
+ if (self.options[self.selectedIndex].value > 0) { |
+ Preferences.setIntegerPref( |
+ 'webkit.webprefs.minimum_font_size', |
+ self.options[self.selectedIndex].value, |
+ 'Options_ChangeMinimumFontSize'); |
+ Preferences.setIntegerPref( |
+ 'webkit.webprefs.minimum_logical_font_size', |
+ self.options[self.selectedIndex].value, ''); |
+ } else { |
+ Preferences.clearPref( |
+ 'webkit.webprefs.minimum_font_size', |
+ 'Options_ChangeMinimumFontSize'); |
+ Preferences.clearPref( |
+ 'webkit.webprefs.minimum_logical_font_size', ''); |
+ } |
+ }); |
+ }, |
+ |
+ /** |
+ * Sets up options in select element. |
+ * @param {Array} options List of option and their display text. |
+ * Each element in the array is an array of length 2 which contains options |
+ * value in the first element and display text in the second element. |
+ * |
+ * TODO(zelidrag): move this to that i18n template classes. |
+ */ |
+ initializeValues: function(options) { |
+ options.forEach(function(values) { |
+ this.appendChild(new Option(values[1], values[0])); |
+ }, this); |
+ } |
+ }; |
+ |
+ // Export |
+ return { |
+ MinimumFontSizeSelect: MinimumFontSizeSelect |
+ }; |
+ |
+}); |
+ |
Property changes on: chrome/browser/resources/options/font_settings_ui.js |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |