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

Side by Side Diff: chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js

Issue 10453032: Add wallpaper experimental api framework and add a simple category list. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: "Flackr's review" Created 8 years, 6 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
(Empty)
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
3 // found in the LICENSE file.
4
5 /**
6 * WallpaperManager constructor.
7 *
8 * WallpaperManager objects encapsulate the functionality of the wallpaper
9 * picker dialogs.
10 *
11 * @constructor
12 * @param {HTMLElement} dialogDom The DOM node containing the prototypical
13 * dialog UI.
14 */
15
16 function WallpaperManager(dialogDom) {
17 this.dialogDom_ = dialogDom;
18 this.document_ = dialogDom.ownerDocument;
19 this.selectedCategory = null;
20 this.initDom_();
21 }
22
23 // Anonymous "namespace".
24 (function() {
25
26 /**
27 * Translated strings.
28 */
29 var localStrings;
30
31 function CategoryItem(wallpaperManager, label) {
32 var li = wallpaperManager.document_.createElement('li');
33 li.innerText = label;
34 li.addEventListener('click',
35 wallpaperManager.onCategoryItemClicked.bind(wallpaperManager));
36 return li;
37 }
38
39 /**
40 * Return a translated string.
41 *
42 * Wrapper function to make dealing with translated strings more concise.
43 * Equivilant to localStrings.getString(id).
44 *
45 * @param {string} id The id of the string to return.
46 * @return {string} The translated string.
47 */
48 function str(id) {
49 return localStrings.getString(id) || ('UNLOCALIZED STRING ' + id);
50 }
51
52 /**
53 * Load translated strings.
54 */
55 WallpaperManager.initStrings = function(callback) {
56 chrome.experimental.wallpaperManager.getStrings(function(strings) {
57 localStrings = new LocalStrings(strings);
58 if (callback)
59 callback();
60 });
61 };
62
63 WallpaperManager.prototype.createCategoryItem_ = function(label) {
flackr 2012/07/12 19:40:51 Document.
64 var li = this.document_.createElement('li');
65 li.innerText = label;
66 li.addEventListener('click', this.onCategoryItemClicked.bind(this));
67 return li;
68 };
69
70 /**
71 * One-time initialization of various DOM nodes.
72 */
73 WallpaperManager.prototype.initDom_ = function() {
74 this.categoriesList = this.dialogDom_.querySelector('#categories-list');
75 this.categoriesList.appendChild(
76 this.createCategoryItem_(str('FEATURED_LABEL')));
flackr 2012/07/12 19:40:51 Perhaps createCategoryItem should also add the cat
77 this.categoriesList.appendChild(
78 this.createCategoryItem_(str('NATURE_LABEL')));
79 this.categoriesList.appendChild(
80 this.createCategoryItem_(str('ABSTRACT_LABEL')));
81 this.categoriesList.appendChild(
82 this.createCategoryItem_(str('URBAN_LABEL')));
83 this.categoriesList.appendChild(
84 this.createCategoryItem_(str('COLORS_LABEL')));
85 this.categoriesList.appendChild(
86 this.createCategoryItem_(str('CUSTOM_LABEL')));
87 };
88
89 WallpaperManager.prototype.onCategoryItemClicked = function(e) {
90 var newSelection = e.currentTarget;
91 if (this.selectedCategory == newSelection)
92 return;
93
94 newSelection.classList.add('selected');
95 if (this.selectedCategory)
96 this.selectedCategory.classList.remove('selected');
97 this.selectedCategory = newSelection;
98 };
99
100 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698