Index: chrome/browser/resources/options2/profiles_icon_grid.js |
diff --git a/chrome/browser/resources/options2/profiles_icon_grid.js b/chrome/browser/resources/options2/profiles_icon_grid.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cdd9529b427e1cc95d9664d2a3f08c0ec23eac7f |
--- /dev/null |
+++ b/chrome/browser/resources/options2/profiles_icon_grid.js |
@@ -0,0 +1,68 @@ |
+// Copyright (c) 2011 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() { |
+ const ListItem = cr.ui.ListItem; |
+ const Grid = cr.ui.Grid; |
+ const ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; |
+ |
+ /** |
+ * Creates a new profile icon grid item. |
+ * @param {Object} iconURL The profile icon URL. |
+ * @constructor |
+ * @extends {cr.ui.GridItem} |
+ */ |
+ function ProfilesIconGridItem(iconURL) { |
+ var el = cr.doc.createElement('span'); |
+ el.iconURL_ = iconURL; |
+ ProfilesIconGridItem.decorate(el); |
+ return el; |
+ } |
+ |
+ /** |
+ * Decorates an element as a profile grid item. |
+ * @param {!HTMLElement} el The element to decorate. |
+ */ |
+ ProfilesIconGridItem.decorate = function(el) { |
+ el.__proto__ = ProfilesIconGridItem.prototype; |
+ el.decorate(); |
+ }; |
+ |
+ ProfilesIconGridItem.prototype = { |
+ __proto__: ListItem.prototype, |
+ |
+ /** @inheritDoc */ |
+ decorate: function() { |
+ ListItem.prototype.decorate.call(this); |
+ var imageEl = cr.doc.createElement('img'); |
+ imageEl.className = 'profile-icon'; |
+ imageEl.src = this.iconURL_; |
+ this.appendChild(imageEl); |
+ |
+ this.className = 'profile-icon-grid-item'; |
+ }, |
+ }; |
+ |
+ var ProfilesIconGrid = cr.ui.define('grid'); |
+ |
+ ProfilesIconGrid.prototype = { |
+ __proto__: Grid.prototype, |
+ |
+ /** @inheritDoc */ |
+ decorate: function() { |
+ Grid.prototype.decorate.call(this); |
+ this.selectionModel = new ListSingleSelectionModel(); |
+ }, |
+ |
+ /** @inheritDoc */ |
+ createItem: function(iconURL) { |
+ return new ProfilesIconGridItem(iconURL); |
+ }, |
+ }; |
+ |
+ return { |
+ ProfilesIconGrid: ProfilesIconGrid |
+ }; |
+}); |
+ |