OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 cr.define('ntp4', function() { | 5 cr.define('ntp4', function() { |
6 'use strict'; | 6 'use strict'; |
7 | 7 |
8 var localStrings = new LocalStrings; | 8 var localStrings = new LocalStrings; |
9 | 9 |
10 /** | 10 /** |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 title.textContent = this.data.title; | 52 title.textContent = this.data.title; |
53 | 53 |
54 if (this.data.url) { | 54 if (this.data.url) { |
55 var button = this.querySelector('.button'); | 55 var button = this.querySelector('.button'); |
56 button.href = title.href = this.data.url; | 56 button.href = title.href = this.data.url; |
57 } | 57 } |
58 | 58 |
59 var faviconDiv = this.querySelector('.favicon'); | 59 var faviconDiv = this.querySelector('.favicon'); |
60 var faviconUrl; | 60 var faviconUrl; |
61 if (this.data.url) { | 61 if (this.data.url) { |
62 faviconUrl = 'chrome://favicon/size/32/' + this.data.url; | 62 faviconUrl = 'chrome://favicon/size/16/' + this.data.url; |
63 chrome.send('getFaviconDominantColor', | 63 chrome.send('getFaviconDominantColor', |
64 [faviconUrl, id, 'ntp4.setBookmarksFaviconDominantColor']); | 64 [faviconUrl, id, 'ntp4.setBookmarksFaviconDominantColor']); |
65 } else { | 65 } else { |
66 // TODO(csilv): We need a large (32px) icon for this URL. | |
67 faviconUrl = 'chrome://theme/IDR_BOOKMARK_BAR_FOLDER'; | 66 faviconUrl = 'chrome://theme/IDR_BOOKMARK_BAR_FOLDER'; |
68 // TODO(csilv): Should we vary this color by platform? | 67 // TODO(csilv): Should we vary this color by platform? |
69 this.stripeColor = '#919191'; | 68 this.stripeColor = '#919191'; |
70 } | 69 } |
71 faviconDiv.style.backgroundImage = url(faviconUrl); | 70 faviconDiv.style.backgroundImage = url(faviconUrl); |
72 | 71 |
73 this.addEventListener('click', this.handleClick_.bind(this)); | 72 this.addEventListener('click', this.handleClick_.bind(this)); |
74 }, | 73 }, |
75 | 74 |
76 /** | 75 /** |
77 * Sets the color of the favicon dominant color bar. | 76 * Sets the color of the favicon dominant color bar. |
78 * @param {string} color The css-parsable value for the color. | 77 * @param {string} color The css-parsable value for the color. |
79 */ | 78 */ |
80 set stripeColor(color) { | 79 set stripeColor(color) { |
81 this.querySelector('.color-stripe').style.backgroundColor = color; | 80 this.querySelector('.color-stripe').style.backgroundColor = color; |
82 }, | 81 }, |
83 | 82 |
84 /** | 83 /** |
85 * Set the size and position of the bookmark tile. | 84 * Set the size and position of the bookmark tile. |
86 * @param {number} size The total size of |this|. | 85 * @param {number} size The total size of |this|. |
87 * @param {number} x The x-position. | 86 * @param {number} x The x-position. |
88 * @param {number} y The y-position. | 87 * @param {number} y The y-position. |
89 * animate. | 88 * animate. |
90 */ | 89 */ |
91 setBounds: function(size, x, y) { | 90 setBounds: function(size, x, y) { |
92 this.style.width = this.style.height = size + 'px'; | 91 this.style.width = size + 'px'; |
| 92 this.style.height = heightForWidth(size) + 'px'; |
| 93 |
93 this.style.left = x + 'px'; | 94 this.style.left = x + 'px'; |
| 95 this.style.right = x + 'px'; |
94 this.style.top = y + 'px'; | 96 this.style.top = y + 'px'; |
95 }, | 97 }, |
96 | 98 |
97 /** | 99 /** |
98 * Invoked when a bookmark is clicked | 100 * Invoked when a bookmark is clicked |
99 * @param {Event} e The click event. | 101 * @param {Event} e The click event. |
100 * @private | 102 * @private |
101 */ | 103 */ |
102 handleClick_: function(e) { | 104 handleClick_: function(e) { |
103 if (e.target.classList.contains('close-button')) { | 105 if (e.target.classList.contains('close-button')) { |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 maxColCount: 6, | 168 maxColCount: 6, |
167 | 169 |
168 // The smallest a tile can be. | 170 // The smallest a tile can be. |
169 minTileWidth: 150, | 171 minTileWidth: 150, |
170 // The biggest a tile can be. | 172 // The biggest a tile can be. |
171 maxTileWidth: 150, | 173 maxTileWidth: 150, |
172 }; | 174 }; |
173 TilePage.initGridValues(bookmarksPageGridValues); | 175 TilePage.initGridValues(bookmarksPageGridValues); |
174 | 176 |
175 /** | 177 /** |
| 178 * Calculates the height for a bookmarks tile for a given width. The size |
| 179 * is based on a desired size of 96x72 ratio. |
| 180 * @return {number} The height. |
| 181 */ |
| 182 function heightForWidth(width) { |
| 183 // The 2s are for borders, the 31 is for the title. |
| 184 return (width - 2) * 72 / 96 + 2 + 31; |
| 185 } |
| 186 |
| 187 /** |
176 * Creates a new BookmarksPage object. | 188 * Creates a new BookmarksPage object. |
177 * @constructor | 189 * @constructor |
178 * @extends {TilePage} | 190 * @extends {TilePage} |
179 */ | 191 */ |
180 function BookmarksPage() { | 192 function BookmarksPage() { |
181 var el = new TilePage(bookmarksPageGridValues); | 193 var el = new TilePage(bookmarksPageGridValues); |
182 el.__proto__ = BookmarksPage.prototype; | 194 el.__proto__ = BookmarksPage.prototype; |
183 el.initialize(); | 195 el.initialize(); |
184 | 196 |
185 return el; | 197 return el; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 } | 280 } |
269 } | 281 } |
270 return false; | 282 return false; |
271 }, | 283 }, |
272 | 284 |
273 /** @inheritDoc */ | 285 /** @inheritDoc */ |
274 shouldAcceptDrag: function(dataTransfer) { | 286 shouldAcceptDrag: function(dataTransfer) { |
275 return false; | 287 return false; |
276 }, | 288 }, |
277 | 289 |
| 290 /** @inheritDoc */ |
| 291 heightForWidth: heightForWidth, |
| 292 |
278 /** | 293 /** |
279 * Invoked before a batch import begins. We will ignore added/changed | 294 * Invoked before a batch import begins. We will ignore added/changed |
280 * notifications while the operation is in progress. | 295 * notifications while the operation is in progress. |
281 */ | 296 */ |
282 bookmarkImportBegan: function() { | 297 bookmarkImportBegan: function() { |
283 this.importing = true; | 298 this.importing = true; |
284 }, | 299 }, |
285 | 300 |
286 /** | 301 /** |
287 * Invoked after a batch import finishes. We will reload the bookmarks | 302 * Invoked after a batch import finishes. We will reload the bookmarks |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 }; | 457 }; |
443 | 458 |
444 return { | 459 return { |
445 BookmarksPage: BookmarksPage, | 460 BookmarksPage: BookmarksPage, |
446 initBookmarkChevron: initBookmarkChevron, | 461 initBookmarkChevron: initBookmarkChevron, |
447 setBookmarksFaviconDominantColor: setBookmarksFaviconDominantColor | 462 setBookmarksFaviconDominantColor: setBookmarksFaviconDominantColor |
448 }; | 463 }; |
449 }); | 464 }); |
450 | 465 |
451 window.addEventListener('load', ntp4.initBookmarkChevron); | 466 window.addEventListener('load', ntp4.initBookmarkChevron); |
OLD | NEW |