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

Side by Side Diff: chrome/browser/resources/options2/chromeos/set_wallpaper_options.js

Issue 10384079: Reland "Implement random wallpaper feature" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 6
7 var OptionsPage = options.OptionsPage; 7 var OptionsPage = options.OptionsPage;
8 var UserImagesGrid = options.UserImagesGrid; 8 var UserImagesGrid = options.UserImagesGrid;
9 9
10 ///////////////////////////////////////////////////////////////////////////// 10 /////////////////////////////////////////////////////////////////////////////
(...skipping 27 matching lines...) Expand all
38 var wallpaperGrid = $('wallpaper-grid'); 38 var wallpaperGrid = $('wallpaper-grid');
39 UserImagesGrid.decorate(wallpaperGrid); 39 UserImagesGrid.decorate(wallpaperGrid);
40 40
41 wallpaperGrid.addEventListener('change', 41 wallpaperGrid.addEventListener('change',
42 this.handleImageSelected_.bind(this)); 42 this.handleImageSelected_.bind(this));
43 wallpaperGrid.addEventListener('dblclick', 43 wallpaperGrid.addEventListener('dblclick',
44 this.handleImageDblClick_.bind(this)); 44 this.handleImageDblClick_.bind(this));
45 wallpaperGrid.addEventListener('activate', 45 wallpaperGrid.addEventListener('activate',
46 function() { OptionsPage.closeOverlay() }); 46 function() { OptionsPage.closeOverlay() });
47 47
48 $('use-random-wallpaper').onclick = this.handleCheckboxClick_.bind(this);
48 $('set-wallpaper-overlay-confirm').onclick = function() { 49 $('set-wallpaper-overlay-confirm').onclick = function() {
49 OptionsPage.closeOverlay(); 50 OptionsPage.closeOverlay();
50 }; 51 };
51 52
52 // @type {Array.<author: string, url: string, website: string>} 53 // @type {Array.<author: string, url: string, website: string>}
53 this.wallpapers_ = []; 54 this.wallpapers_ = [];
54 55
55 chrome.send('onSetWallpaperPageInitialized'); 56 chrome.send('onSetWallpaperPageInitialized');
56 }, 57 },
57 58
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 /** 97 /**
97 * Handles image selection change. 98 * Handles image selection change.
98 * @private 99 * @private
99 */ 100 */
100 handleImageSelected_: function() { 101 handleImageSelected_: function() {
101 var wallpaperGrid = $('wallpaper-grid'); 102 var wallpaperGrid = $('wallpaper-grid');
102 var url = wallpaperGrid.selectedItemUrl; 103 var url = wallpaperGrid.selectedItemUrl;
103 if (url && 104 if (url &&
104 !wallpaperGrid.inProgramSelection) { 105 !wallpaperGrid.inProgramSelection) {
105 this.setWallpaperAttribution_(url); 106 this.setWallpaperAttribution_(url);
106 chrome.send('selectWallpaper', [url]); 107 chrome.send('selectDefaultWallpaper', [url]);
107 } 108 }
108 }, 109 },
109 110
110 /** 111 /**
111 * Handles double click on the image grid. 112 * Handles double click on the image grid.
112 * @param {Event} e Double click Event. 113 * @param {Event} e Double click Event.
113 */ 114 */
114 handleImageDblClick_: function(e) { 115 handleImageDblClick_: function(e) {
116 var wallpaperGrid = $('wallpaper-grid');
117 if (wallpaperGrid.disabled)
118 return;
115 // Close page unless the click target is the grid itself. 119 // Close page unless the click target is the grid itself.
116 if (e.target instanceof HTMLImageElement) 120 if (e.target instanceof HTMLImageElement)
117 OptionsPage.closeOverlay(); 121 OptionsPage.closeOverlay();
118 }, 122 },
119 123
120 /** 124 /**
121 * Selects corresponding wallpaper thumbnail with the given URL. 125 * Handles click on the "I'm feeling lucky" checkbox.
122 * @param {string} url URL of the wallpaper thumbnail to select.
123 * @private 126 * @private
124 */ 127 */
125 setSelectedImage_: function(url) { 128 handleCheckboxClick_: function() {
126 $('wallpaper-grid').selectedItemUrl = url; 129 var wallpaperGrid = $('wallpaper-grid');
127 this.setWallpaperAttribution_(url); 130 if ($('use-random-wallpaper').checked) {
131 wallpaperGrid.disabled = true;
132 chrome.send('selectRandomWallpaper');
133 wallpaperGrid.classList.add('grayout');
134 } else {
135 wallpaperGrid.disabled = false;
136 wallpaperGrid.classList.remove('grayout');
137 // Set the wallpaper type to User::DEFAULT.
138 this.handleImageSelected_();
139 }
128 }, 140 },
129 141
130 /** 142 /**
143 * Selects corresponding wallpaper thumbnail with the given URL and toggle
144 * the "I'm feeling lucky" checkbox.
145 * @param {string} url URL of the wallpaper thumbnail to select.
146 * @param {boolean} isRandom True if user checked "I'm feeling lucky"
147 * checkbox.
148 * @private
149 */
150 setSelectedImage_: function(url, isRandom) {
151 var wallpaperGrid = $('wallpaper-grid');
152 wallpaperGrid.selectedItemUrl = url;
153 this.setWallpaperAttribution_(url);
154 if (isRandom) {
155 // Do not call chrome.send('selectRandomWallpaper'), it is not
156 // neccessary to generate a new random index here.
157 $('use-random-wallpaper').checked = true;
158 wallpaperGrid.disabled = true;
159 wallpaperGrid.classList.add('grayout');
160 }
161 },
162
163 /**
131 * Appends default images to the image grid. Should only be called once. 164 * Appends default images to the image grid. Should only be called once.
132 * @param {Array.<{author: string, url: string, website: string}>} 165 * @param {Array.<{author: string, url: string, website: string}>}
133 * wallpapers An array of wallpaper objects. 166 * wallpapers An array of wallpaper objects.
134 * @private 167 * @private
135 */ 168 */
136 setDefaultImages_: function(wallpapers) { 169 setDefaultImages_: function(wallpapers) {
137 var wallpaperGrid = $('wallpaper-grid'); 170 var wallpaperGrid = $('wallpaper-grid');
138 // TODO(bshe): Ideally we should save author and website with the actual 171 // TODO(bshe): Ideally we should save author and website with the actual
139 // image (URL) and not use index related storage. This way this data is 172 // image (URL) and not use index related storage. This way this data is
140 // stored in one place rather than depending on the index to be 173 // stored in one place rather than depending on the index to be
(...skipping 17 matching lines...) Expand all
158 }; 191 };
159 }); 192 });
160 193
161 // Export 194 // Export
162 return { 195 return {
163 SetWallpaperOptions: SetWallpaperOptions 196 SetWallpaperOptions: SetWallpaperOptions
164 }; 197 };
165 198
166 }); 199 });
167 200
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698