| OLD | NEW |
| 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 /** @const */ var OptionsPage = options.OptionsPage; | 6 /** @const */ var OptionsPage = options.OptionsPage; |
| 7 /** @const */ var SettingsDialog = options.SettingsDialog; | 7 /** @const */ var SettingsDialog = options.SettingsDialog; |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * HomePageOverlay class | 10 * HomePageOverlay class |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 autocompleteList_: null, | 31 autocompleteList_: null, |
| 32 | 32 |
| 33 /** | 33 /** |
| 34 * Initialize the page. | 34 * Initialize the page. |
| 35 */ | 35 */ |
| 36 initializePage: function() { | 36 initializePage: function() { |
| 37 // Call base class implementation to start preference initialization. | 37 // Call base class implementation to start preference initialization. |
| 38 SettingsDialog.prototype.initializePage.call(this); | 38 SettingsDialog.prototype.initializePage.call(this); |
| 39 | 39 |
| 40 var self = this; | 40 var self = this; |
| 41 $('homepage-use-ntp').onchange = this.updateHomePageInput_.bind(this); | 41 options.Preferences.getInstance().addEventListener( |
| 42 $('homepage-use-url').onchange = this.updateHomePageInput_.bind(this); | 42 'homepage_is_newtabpage', |
| 43 this.handleHomepageIsNTPPrefChange.bind(this)); |
| 43 | 44 |
| 44 var urlField = $('homepage-url-field'); | 45 var urlField = $('homepage-url-field'); |
| 45 urlField.addEventListener('keydown', function(event) { | 46 urlField.addEventListener('keydown', function(event) { |
| 46 // Focus the 'OK' button when the user hits enter since people expect | 47 // Focus the 'OK' button when the user hits enter since people expect |
| 47 // feedback indicating that they are done editing. | 48 // feedback indicating that they are done editing. |
| 48 if (event.keyIdentifier == 'Enter' && self.autocompleteList_.hidden) | 49 if (event.keyIdentifier == 'Enter' && self.autocompleteList_.hidden) |
| 49 $('home-page-confirm').focus(); | 50 $('home-page-confirm').focus(); |
| 50 }); | 51 }); |
| 51 urlField.addEventListener('change', this.updateFavicon_.bind(this)); | 52 urlField.addEventListener('change', this.updateFavicon_.bind(this)); |
| 52 | 53 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 66 | 67 |
| 67 // Text fields may change widths when the window changes size, so make | 68 // Text fields may change widths when the window changes size, so make |
| 68 // sure the suggestion list stays in sync. | 69 // sure the suggestion list stays in sync. |
| 69 window.addEventListener('resize', function() { | 70 window.addEventListener('resize', function() { |
| 70 self.autocompleteList_.syncWidthToInput(); | 71 self.autocompleteList_.syncWidthToInput(); |
| 71 }); | 72 }); |
| 72 }, | 73 }, |
| 73 | 74 |
| 74 /** @inheritDoc */ | 75 /** @inheritDoc */ |
| 75 didShowPage: function() { | 76 didShowPage: function() { |
| 76 this.updateHomePageInput_(); | |
| 77 this.updateFavicon_(); | 77 this.updateFavicon_(); |
| 78 }, | 78 }, |
| 79 | 79 |
| 80 /** | 80 /** |
| 81 * Updates the state of the homepage text input. The input is enabled only | 81 * Updates the state of the homepage text input and its controlled setting |
| 82 * if the |homepage-use-url| radio button is checked. | 82 * indicator when the |homepage_is_newtabpage| pref changes. The input is |
| 83 * @private | 83 * enabled only if the homepage is not the NTP. The indicator is always |
| 84 * enabled but treats the input's value as read-only if the homepage is the |
| 85 * NTP. |
| 86 * @param {Event} Pref change event. |
| 84 */ | 87 */ |
| 85 updateHomePageInput_: function() { | 88 handleHomepageIsNTPPrefChange: function(event) { |
| 86 var urlField = $('homepage-url-field'); | 89 var urlField = $('homepage-url-field'); |
| 87 var homePageUseURL = $('homepage-use-url'); | 90 var urlFieldIndicator = $('homepage-url-field-indicator'); |
| 88 urlField.setDisabled('radio-choice', !homePageUseURL.checked); | 91 urlField.setDisabled('homepage-is-ntp', event.value.value); |
| 92 urlFieldIndicator.readOnly = event.value.value; |
| 89 }, | 93 }, |
| 90 | 94 |
| 91 /** | 95 /** |
| 92 * Updates the background of the url field to show the favicon for the | 96 * Updates the background of the url field to show the favicon for the |
| 93 * URL that is currently typed in. | 97 * URL that is currently typed in. |
| 94 * @private | 98 * @private |
| 95 */ | 99 */ |
| 96 updateFavicon_: function() { | 100 updateFavicon_: function() { |
| 97 var urlField = $('homepage-url-field'); | 101 var urlField = $('homepage-url-field'); |
| 98 urlField.style.backgroundImage = url('chrome://favicon/' + | 102 urlField.style.backgroundImage = url('chrome://favicon/' + |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 HomePageOverlay.updateAutocompleteSuggestions = function() { | 153 HomePageOverlay.updateAutocompleteSuggestions = function() { |
| 150 var instance = HomePageOverlay.getInstance(); | 154 var instance = HomePageOverlay.getInstance(); |
| 151 instance.updateAutocompleteSuggestions_.apply(instance, arguments); | 155 instance.updateAutocompleteSuggestions_.apply(instance, arguments); |
| 152 }; | 156 }; |
| 153 | 157 |
| 154 // Export | 158 // Export |
| 155 return { | 159 return { |
| 156 HomePageOverlay: HomePageOverlay | 160 HomePageOverlay: HomePageOverlay |
| 157 }; | 161 }; |
| 158 }); | 162 }); |
| OLD | NEW |