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.
5 cr.define('options', function() {
6 /** @const */ var ListItem = cr.ui.ListItem;
7 /** @const */ var Grid = cr.ui.Grid;
8 /** @const */ var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel;
11 * Creates a new profile icon grid item.
12 * @param {Object} iconURL The profile icon URL.
14 * @extends {cr.ui.GridItem}
16 function ProfilesIconGridItem(iconURL) {
17 var el = cr.doc.createElement('span');
18 el.iconURL_ = iconURL;
19 ProfilesIconGridItem.decorate(el);
24 * Decorates an element as a profile grid item.
25 * @param {!HTMLElement} el The element to decorate.
27 ProfilesIconGridItem.decorate = function(el) {
28 el.__proto__ = ProfilesIconGridItem.prototype;
32 ProfilesIconGridItem.prototype = {
33 __proto__: ListItem.prototype,
36 decorate: function() {
37 ListItem.prototype.decorate.call(this);
38 var imageEl = cr.doc.createElement('img');
39 imageEl.className = 'profile-icon';
40 imageEl.style.content = getProfileAvatarIcon(this.iconURL_);
41 this.appendChild(imageEl);
43 this.className = 'profile-icon-grid-item';
47 var ProfilesIconGrid = cr.ui.define('grid');
49 ProfilesIconGrid.prototype = {
50 __proto__: Grid.prototype,
53 decorate: function() {
54 Grid.prototype.decorate.call(this);
55 this.selectionModel = new ListSingleSelectionModel();
59 createItem: function(iconURL) {
60 return new ProfilesIconGridItem(iconURL);
65 ProfilesIconGrid: ProfilesIconGrid