Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1580)

Unified Diff: chrome/browser/resources/options2/chromeos/set_wallpaper_options.js

Issue 10809005: Options: Rename chrome/browser/resources/options2 -> chrome/browser/resources/options. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix. Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
- };
-
-});
-

Powered by Google App Engine
This is Rietveld 408576698