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

Unified 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: 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
new file mode 100644
index 0000000000000000000000000000000000000000..f7aaedced7176ef7adc855c837b250530fc77155
--- /dev/null
+++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
@@ -0,0 +1,87 @@
+// 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.
+
+/**
+ * WallpaperManager constructor.
+ *
+ * WallpaperManager objects encapsulate the functionality of the wallpaper
+ * picker dialogs.
+ *
+ * @constructor
+ * @param {HTMLElement} dialogDom The DOM node containing the prototypical
+ * dialog UI.
+ */
+
+function WallpaperManager(dialogDom) {
+ this.dialogDom_ = dialogDom;
+ this.document_ = dialogDom.ownerDocument;
+ this.selectedCategory = null;
+ this.initDom_();
+}
+
+// Anonymous "namespace".
+(function() {
+
+ /**
+ * Translated strings.
+ */
+ var localStrings;
+
+ function CategoryItem(wallpaperManager, label) {
+ var li = wallpaperManager.document_.createElement('li');
+ li.innerText = label;
+ li.addEventListener('click',
+ wallpaperManager.onCategoryItemClicked.bind(wallpaperManager));
+ return li;
+ }
+
+ /**
+ * Return a translated string.
+ *
+ * Wrapper function to make dealing with translated strings more concise.
+ * Equivilant to localStrings.getString(id).
+ *
+ * @param {string} id The id of the string to return.
+ * @return {string} The translated string.
+ */
+ function str(id) {
+ return localStrings.getString(id) || ('UNLOCALIZED STRING ' + id);
+ }
+
+ /**
+ * Load translated strings.
+ */
+ WallpaperManager.initStrings = function(callback) {
+ chrome.experimental.wallpaperManager.getStrings(function(strings) {
+ localStrings = new LocalStrings(strings);
+ if (callback)
+ callback();
+ });
+ };
+
+ /**
+ * One-time initialization of various DOM nodes.
+ */
+ WallpaperManager.prototype.initDom_ = function() {
+ this.categoriesList = this.dialogDom_.querySelector('#categories-list');
+ this.categoriesList.appendChild(CategoryItem(this, str('FEATURED_LABEL')));
+ this.categoriesList.appendChild(CategoryItem(this, str('NATURE_LABEL')));
+ this.categoriesList.appendChild(CategoryItem(this, str('ABSTRACT_LABEL')));
+ this.categoriesList.appendChild(CategoryItem(this, str('URBAN_LABEL')));
+ this.categoriesList.appendChild(CategoryItem(this, str('COLORS_LABEL')));
+ this.categoriesList.appendChild(CategoryItem(this, str('CUSTOM_LABEL')));
+ };
+
+ WallpaperManager.prototype.onCategoryItemClicked = function(e) {
+ var newSelection = e.currentTarget;
+ if (this.selectedCategory == newSelection)
+ return;
+
+ newSelection.classList.add('selected');
+ if (this.selectedCategory)
+ this.selectedCategory.classList.remove('selected');
+ this.selectedCategory = newSelection;
+ };
+
+})();

Powered by Google App Engine
This is Rietveld 408576698