diff options
author | stuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-27 21:31:31 +0000 |
---|---|---|
committer | stuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-27 21:31:31 +0000 |
commit | 1f301913a63a92363ad1305cf4983e484d865980 (patch) | |
tree | ddf578cd91c1845dbbe252dc3783719dc014e012 /chrome/browser/resources/options/browser_options.js | |
parent | 4a0476960b162ea8c2e367c39b217c8d8a1398e5 (diff) | |
download | chromium_src-1f301913a63a92363ad1305cf4983e484d865980.zip chromium_src-1f301913a63a92363ad1305cf4983e484d865980.tar.gz chromium_src-1f301913a63a92363ad1305cf4983e484d865980.tar.bz2 |
Implement most of the startup page controls in DOMUI prefs
Hooks up display of startup pages, removal of pages, and setting the startup pages to the currently open tabs.
Uses a select for now, but will eventually be replaced with a List so the favicons can be displayed.
BUG=48713
TEST=Startup pages can be viewed, removed, and set to current in DOMUI prefs.
Review URL: http://codereview.chromium.org/3046025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53849 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/resources/options/browser_options.js')
-rw-r--r-- | chrome/browser/resources/options/browser_options.js | 71 |
1 files changed, 64 insertions, 7 deletions
diff --git a/chrome/browser/resources/options/browser_options.js b/chrome/browser/resources/options/browser_options.js index 834c993..53e0656 100644 --- a/chrome/browser/resources/options/browser_options.js +++ b/chrome/browser/resources/options/browser_options.js @@ -23,15 +23,19 @@ BrowserOptions.prototype = { // Call base class implementation to start preference initialization. OptionsPage.prototype.initializePage.call(this); - // Wire up buttons. + // Wire up controls. + var self = this; + $('startupPages').onchange = function(event) { + self.updateRemoveButtonState_(); + }; $('startupAddButton').onclick = function(event) { OptionsPage.showOverlay('addStartupPageOverlay'); }; $('startupRemoveButton').onclick = function(event) { - // TODO(stuartmorgan): Remove selected element(s). + self.removeSelectedStartupPages_(); }; $('startupUseCurrentButton').onclick = function(event) { - // TODO(stuartmorgan): Add all open tabs (except this one). + chrome.send('setStartupPagesToCurrentPages'); }; $('defaultSearchManageEnginesButton').onclick = function(event) { OptionsPage.showPageByName('searchEngines'); @@ -81,10 +85,10 @@ BrowserOptions.prototype = { updateSearchEngines_: function(engines, defaultValue) { this.clearSearchEngines_(); engineSelect = $('defaultSearchEngine'); - engineCount = engines.length + engineCount = engines.length; var defaultIndex = -1; for (var i = 0; i < engineCount; i++) { - var engine = engines[i] + var engine = engines[i]; var option = new Option(engine['name'], engine['index']); if (defaultValue == option.value) defaultIndex = i; @@ -95,6 +99,55 @@ BrowserOptions.prototype = { }, /** + * Clears the startup page list. + * @private + */ + clearStartupPages_: function() { + $('startupPages').textContent = ''; + }, + + /** + * Updates the startup pages list with the given entries. + * @param {Array} pages List of startup pages. + */ + updateStartupPages_: function(pages) { + // TODO(stuartmorgan): Replace <select> with a DOMUI List. + this.clearStartupPages_(); + pageList = $('startupPages'); + pageCount = pages.length; + for (var i = 0; i < pageCount; i++) { + var page = pages[i]; + var option = new Option(page['title']); + option.title = page['tooltip']; + pageList.appendChild(option); + } + + this.updateRemoveButtonState_(); + }, + + /** + * Sets the enabled state of the startup page Remove button based on + * the current selection in the startup pages list. + */ + updateRemoveButtonState_: function() { + $('startupRemoveButton').disabled = ($('startupPages').selectedIndex == -1); + }, + + /** + * Removes the selected startup pages. + */ + removeSelectedStartupPages_: function() { + var pageSelect = $('startupPages'); + var optionCount = pageSelect.options.length; + var selections = []; + for (var i = 0; i < optionCount; i++) { + if (pageSelect.options[i].selected) + selections.push(String(i)); + } + chrome.send('removeStartupPages', selections); + }, + + /** * Set the default search engine based on the popup selection. */ setDefaultBrowser: function() { @@ -110,8 +163,12 @@ BrowserOptions.prototype = { BrowserOptions.updateDefaultBrowserState = function(statusString, isDefault) { BrowserOptions.getInstance().updateDefaultBrowserState_(statusString, isDefault); -} +}; BrowserOptions.updateSearchEngines = function(engines, defaultValue) { BrowserOptions.getInstance().updateSearchEngines_(engines, defaultValue); -} +}; + +BrowserOptions.updateStartupPages = function(pages) { + BrowserOptions.getInstance().updateStartupPages_(pages); +}; |