Index: chrome/browser/resources/options2/chromeos/set_wallpaper_options.js |
diff --git a/chrome/browser/resources/options2/chromeos/set_wallpaper_options.js b/chrome/browser/resources/options2/chromeos/set_wallpaper_options.js |
deleted file mode 100644 |
index 4f01abb6bb68f87c8261f5a5789a4965de56a081..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/options2/chromeos/set_wallpaper_options.js |
+++ /dev/null |
@@ -1,324 +0,0 @@ |
-// Copyright (c) 2012 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() { |
- |
- var OptionsPage = options.OptionsPage; |
- var UserImagesGrid = options.UserImagesGrid; |
- |
- /** @const */ var CUSTOM_WALLPAPER_PREFIX = |
- 'chrome://wallpaper-thumb/custom_'; |
- |
- ///////////////////////////////////////////////////////////////////////////// |
- // SetWallpaperOptions class: |
- |
- /** |
- * Encapsulated handling of ChromeOS set wallpaper options page. |
- * @constructor |
- */ |
- function SetWallpaperOptions() { |
- OptionsPage.call( |
- this, |
- 'setWallpaper', |
- loadTimeData.getString('setWallpaper'), |
- 'set-wallpaper-page'); |
- } |
- |
- cr.addSingletonGetter(SetWallpaperOptions); |
- |
- SetWallpaperOptions.prototype = { |
- // Inherit SetWallpaperOptions from OptionsPage. |
- __proto__: options.OptionsPage.prototype, |
- |
- /** |
- * Initializes SetWallpaperOptions page. |
- */ |
- initializePage: function() { |
- // Call base class implementation to start preferences initialization. |
- OptionsPage.prototype.initializePage.call(this); |
- |
- var wallpaperGrid = $('wallpaper-grid'); |
- UserImagesGrid.decorate(wallpaperGrid); |
- |
- wallpaperGrid.addEventListener('change', |
- this.handleImageSelected_.bind(this)); |
- wallpaperGrid.addEventListener('dblclick', |
- this.handleImageDblClick_.bind(this)); |
- wallpaperGrid.addEventListener('activate', |
- function() { OptionsPage.closeOverlay() }); |
- |
- $('set-wallpaper-layout').addEventListener('change', |
- this.handleLayoutChange_); |
- $('set-custom-wallpaper').onclick = this.handleChooseFile_; |
- $('use-daily-wallpaper').onclick = this.handleCheckboxClick_.bind(this); |
- $('set-wallpaper-overlay-confirm').onclick = function() { |
- OptionsPage.closeOverlay(); |
- }; |
- |
- // @type {Array.<author: string, url: string, website: string>} |
- this.wallpapers_ = []; |
- |
- // @type {Object} Old user custom wallpaper thumbnail. |
- this.oldImage_ = null; |
- |
- chrome.send('onSetWallpaperPageInitialized'); |
- }, |
- |
- /** |
- * Called right after the page has been shown to user. |
- */ |
- didShowPage: function() { |
- $('wallpaper-grid').updateAndFocus(); |
- // A quick hack to fix issue 118472. This is a general problem of list |
- // control and options overlay. |
- // TODO(bshe): Remove this hack when we fixed the general problem which |
- // tracked in issue 118829. |
- $('wallpaper-grid').redraw(); |
- chrome.send('onSetWallpaperPageShown'); |
- }, |
- |
- /** |
- * Called right before the page is hidden. |
- */ |
- willHidePage: function() { |
- var wallpaperGrid = $('wallpaper-grid'); |
- wallpaperGrid.blur(); |
- if (this.oldImage_) { |
- wallpaperGrid.removeItem(this.oldImage_); |
- this.oldImage_ = null; |
- } |
- $('set-wallpaper-layout').innerText = ''; |
- }, |
- |
- /** |
- * Set attributions of wallpaper with given URL. |
- * @param {string} url URL of the selected wallpaper. |
- * @private |
- */ |
- setWallpaperAttribution_: function(url) { |
- for (var i = 0; i < this.wallpapers_.length; i++) { |
- if (this.wallpapers_[i].url == url) { |
- $('wallpaper-author-name').textContent = this.wallpapers_[i].author; |
- $('wallpaper-author-website').textContent = |
- this.wallpapers_[i].website; |
- return; |
- } |
- } |
- $('wallpaper-author-name').textContent = ''; |
- $('wallpaper-author-website').textContent = ''; |
- }, |
- |
- /** |
- * Populates the drop down box for custom wallpaper layouts. |
- * param {string} layouts Available wallpaper layouts. |
- * param {number} selectedLayout The value of selected/default layout. |
- * @private |
- */ |
- populateWallpaperLayouts_: function(layouts, selectedLayout) { |
- var wallpaperLayout = $('set-wallpaper-layout'); |
- var selectedIndex = -1; |
- for (var i = 0; i < layouts.length; i++) { |
- var option = new Option(layouts[i]['name'], layouts[i]['index']); |
- if (selectedLayout == option.value) |
- selectedIndex = i; |
- wallpaperLayout.appendChild(option); |
- } |
- if (selectedIndex >= 0) |
- wallpaperLayout.selectedIndex = selectedIndex; |
- }, |
- |
- /** |
- * Handles "Custom..." button activation. |
- * @private |
- */ |
- handleChooseFile_: function() { |
- chrome.send('chooseWallpaper'); |
- }, |
- |
- /** |
- * Handle the wallpaper layout setting change. |
- * @private |
- */ |
- handleLayoutChange_: function() { |
- var setWallpaperLayout = $('set-wallpaper-layout'); |
- var layout = setWallpaperLayout.options[ |
- setWallpaperLayout.selectedIndex].value; |
- chrome.send('changeWallpaperLayout', [layout]); |
- }, |
- |
- /** |
- * Handles image selection change. |
- * @private |
- */ |
- handleImageSelected_: function() { |
- var wallpaperGrid = $('wallpaper-grid'); |
- var url = wallpaperGrid.selectedItemUrl; |
- if (url && |
- !wallpaperGrid.inProgramSelection) { |
- if (url.indexOf(CUSTOM_WALLPAPER_PREFIX) == 0) { |
- // User custom wallpaper is selected |
- this.isCustom = true; |
- // When users select the custom wallpaper thumbnail from picker UI, |
- // use the saved layout value and redraw the wallpaper. |
- this.handleLayoutChange_(); |
- } else { |
- this.isCustom = false; |
- chrome.send('selectDefaultWallpaper', [url]); |
- } |
- this.setWallpaperAttribution_(url); |
- } |
- }, |
- |
- /** |
- * Handles double click on the image grid. |
- * @param {Event} e Double click Event. |
- */ |
- handleImageDblClick_: function(e) { |
- var wallpaperGrid = $('wallpaper-grid'); |
- if (wallpaperGrid.disabled) |
- return; |
- // Close page unless the click target is the grid itself. |
- if (e.target instanceof HTMLImageElement) |
- OptionsPage.closeOverlay(); |
- }, |
- |
- /** |
- * Handles click on the "I'm feeling lucky" checkbox. |
- * @private |
- */ |
- handleCheckboxClick_: function() { |
- var wallpaperGrid = $('wallpaper-grid'); |
- if ($('use-daily-wallpaper').checked) { |
- wallpaperGrid.disabled = true; |
- $('wallpaper-attribution-label').hidden = false; |
- chrome.send('selectDailyWallpaper'); |
- wallpaperGrid.classList.add('grayout'); |
- $('set-wallpaper-layout').hidden = true; |
- } else { |
- wallpaperGrid.disabled = false; |
- wallpaperGrid.classList.remove('grayout'); |
- // Set the wallpaper type to User::DEFAULT. |
- this.handleImageSelected_(); |
- } |
- }, |
- |
- /** |
- * Selects corresponding wallpaper thumbnail with the given URL and toggle |
- * the "Change wallpaper daily..." checkbox. |
- * @param {string} url URL of the wallpaper thumbnail to select. |
- * @param {boolean} isDaily True if user checked "Change wallpaper daily..." |
- * checkbox. |
- * @private |
- */ |
- setSelectedImage_: function(url, isDaily) { |
- var wallpaperGrid = $('wallpaper-grid'); |
- wallpaperGrid.selectedItemUrl = url; |
- this.setWallpaperAttribution_(url); |
- if (isDaily) { |
- // Do not call chrome.send('selectDailyWallpaper'). |
- $('use-daily-wallpaper').checked = true; |
- wallpaperGrid.disabled = true; |
- wallpaperGrid.classList.add('grayout'); |
- } |
- }, |
- |
- /** |
- * Appends default images to the image grid. Should only be called once. |
- * @param {Array.<{author: string, url: string, website: string}>} |
- * wallpapers An array of wallpaper objects. |
- * @private |
- */ |
- setDefaultImages_: function(wallpapers) { |
- var wallpaperGrid = $('wallpaper-grid'); |
- // TODO(bshe): Ideally we should save author and website with the actual |
- // image (URL) and not use index related storage. This way this data is |
- // stored in one place rather than depending on the index to be |
- // consistent. |
- for (var i = 0, wallpaper; wallpaper = wallpapers[i]; i++) { |
- this.wallpapers_.push(wallpaper); |
- wallpaperGrid.addItem(wallpaper.url); |
- } |
- }, |
- |
- /** |
- * Display layout drop down box and disable daily mode if enabled. Called |
- * when user select a valid file from file system. |
- */ |
- didSelectFile_: function() { |
- $('set-wallpaper-layout').hidden = false; |
- var wallpaperGrid = $('wallpaper-grid'); |
- if ($('use-daily-wallpaper').checked) { |
- $('use-daily-wallpaper').checked = false; |
- wallpaperGrid.disabled = false; |
- wallpaperGrid.classList.remove('grayout'); |
- } |
- }, |
- |
- /** |
- * Returns url of current user's custom wallpaper thumbnail. |
- * @private |
- */ |
- currentWallpaperImageUrl_: function() { |
- return CUSTOM_WALLPAPER_PREFIX + BrowserOptions.getLoggedInUsername() + |
- '?id=' + (new Date()).getTime(); |
- }, |
- |
- /** |
- * Updates the visibility of attribution-label and set-wallpaper-layout. |
- * @param {boolean} isCustom True if users select custom wallpaper. |
- */ |
- set isCustom(isCustom) { |
- if (isCustom) { |
- // Clear attributions for custom wallpaper. |
- $('wallpaper-attribution-label').hidden = true; |
- // Enable the layout drop down box when custom wallpaper is selected. |
- $('set-wallpaper-layout').hidden = false; |
- } else { |
- $('wallpaper-attribution-label').hidden = false; |
- $('set-wallpaper-layout').hidden = true; |
- } |
- }, |
- |
- /** |
- * Adds or updates custom user wallpaper thumbnail from file. |
- * @private |
- */ |
- setCustomImage_: function() { |
- var wallpaperGrid = $('wallpaper-grid'); |
- var url = this.currentWallpaperImageUrl_(); |
- if (this.oldImage_) { |
- this.oldImage_ = wallpaperGrid.updateItem(this.oldImage_, url); |
- } else { |
- // Insert to the end of wallpaper list. |
- var pos = wallpaperGrid.length; |
- this.oldImage_ = wallpaperGrid.addItem(url, undefined, undefined, pos); |
- } |
- |
- this.isCustom = true; |
- this.setWallpaperAttribution_(''); |
- wallpaperGrid.selectedItem = this.oldImage_; |
- }, |
- }; |
- |
- // Forward public APIs to private implementations. |
- [ |
- 'setDefaultImages', |
- 'setSelectedImage', |
- 'populateWallpaperLayouts', |
- 'didSelectFile', |
- 'setCustomImage' |
- ].forEach(function(name) { |
- SetWallpaperOptions[name] = function() { |
- var instance = SetWallpaperOptions.getInstance(); |
- return instance[name + '_'].apply(instance, arguments); |
- }; |
- }); |
- |
- // Export |
- return { |
- SetWallpaperOptions: SetWallpaperOptions |
- }; |
- |
-}); |
- |