OLD | NEW |
| (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 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; | |
9 | |
10 /** | |
11 * Creates a new profile icon grid item. | |
12 * @param {Object} iconURL The profile icon URL. | |
13 * @constructor | |
14 * @extends {cr.ui.GridItem} | |
15 */ | |
16 function ProfilesIconGridItem(iconURL) { | |
17 var el = cr.doc.createElement('span'); | |
18 el.iconURL_ = iconURL; | |
19 ProfilesIconGridItem.decorate(el); | |
20 return el; | |
21 } | |
22 | |
23 /** | |
24 * Decorates an element as a profile grid item. | |
25 * @param {!HTMLElement} el The element to decorate. | |
26 */ | |
27 ProfilesIconGridItem.decorate = function(el) { | |
28 el.__proto__ = ProfilesIconGridItem.prototype; | |
29 el.decorate(); | |
30 }; | |
31 | |
32 ProfilesIconGridItem.prototype = { | |
33 __proto__: ListItem.prototype, | |
34 | |
35 /** @inheritDoc */ | |
36 decorate: function() { | |
37 ListItem.prototype.decorate.call(this); | |
38 var imageEl = cr.doc.createElement('img'); | |
39 imageEl.className = 'profile-icon'; | |
40 imageEl.src = this.iconURL_; | |
41 this.appendChild(imageEl); | |
42 | |
43 this.className = 'profile-icon-grid-item'; | |
44 }, | |
45 }; | |
46 | |
47 var ProfilesIconGrid = cr.ui.define('grid'); | |
48 | |
49 ProfilesIconGrid.prototype = { | |
50 __proto__: Grid.prototype, | |
51 | |
52 /** @inheritDoc */ | |
53 decorate: function() { | |
54 Grid.prototype.decorate.call(this); | |
55 this.selectionModel = new ListSingleSelectionModel(); | |
56 }, | |
57 | |
58 /** @inheritDoc */ | |
59 createItem: function(iconURL) { | |
60 return new ProfilesIconGridItem(iconURL); | |
61 }, | |
62 }; | |
63 | |
64 return { | |
65 ProfilesIconGrid: ProfilesIconGrid | |
66 }; | |
67 }); | |
68 | |
OLD | NEW |