| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // Dependencies that we should remove/formalize: | 5 // Dependencies that we should remove/formalize: |
| 6 // ../shared/js/class_list.js | 6 // ../shared/js/class_list.js |
| 7 // util.js | 7 // util.js |
| 8 // | 8 // |
| 9 // afterTransition | 9 // afterTransition |
| 10 // chrome.send | 10 // chrome.send |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 } else { | 34 } else { |
| 35 el.classList.remove('pinned'); | 35 el.classList.remove('pinned'); |
| 36 } | 36 } |
| 37 } | 37 } |
| 38 | 38 |
| 39 function getThumbnailIndex(el) { | 39 function getThumbnailIndex(el) { |
| 40 var nodes = el.parentNode.querySelectorAll('.thumbnail-container'); | 40 var nodes = el.parentNode.querySelectorAll('.thumbnail-container'); |
| 41 return Array.prototype.indexOf.call(nodes, el); | 41 return Array.prototype.indexOf.call(nodes, el); |
| 42 } | 42 } |
| 43 | 43 |
| 44 function MostVisited(el, miniview, useSmallGrid, visible) { | 44 function MostVisited(el, miniview, menu, useSmallGrid, visible) { |
| 45 this.element = el; | 45 this.element = el; |
| 46 this.miniview = miniview; | 46 this.miniview = miniview; |
| 47 this.menu = menu; |
| 47 this.useSmallGrid_ = useSmallGrid; | 48 this.useSmallGrid_ = useSmallGrid; |
| 48 this.visible_ = visible; | 49 this.visible_ = visible; |
| 49 | 50 |
| 50 this.createThumbnails_(); | 51 this.createThumbnails_(); |
| 51 this.applyMostVisitedRects_(); | 52 this.applyMostVisitedRects_(); |
| 52 | 53 |
| 53 el.addEventListener('click', this.handleClick_.bind(this)); | 54 el.addEventListener('click', this.handleClick_.bind(this)); |
| 54 el.addEventListener('keydown', this.handleKeyDown_.bind(this)); | 55 el.addEventListener('keydown', this.handleKeyDown_.bind(this)); |
| 55 | 56 |
| 56 document.addEventListener('DOMContentLoaded', | 57 document.addEventListener('DOMContentLoaded', |
| (...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 data.length = Math.min(maxItems, data.length); | 530 data.length = Math.min(maxItems, data.length); |
| 530 var len = data.length; | 531 var len = data.length; |
| 531 for (var i = len; i < maxItems; i++) { | 532 for (var i = len; i < maxItems; i++) { |
| 532 data[i] = {filler: true}; | 533 data[i] = {filler: true}; |
| 533 } | 534 } |
| 534 | 535 |
| 535 // On setting we need to update the items | 536 // On setting we need to update the items |
| 536 this.data_ = data; | 537 this.data_ = data; |
| 537 this.updateMostVisited_(); | 538 this.updateMostVisited_(); |
| 538 this.updateMiniview_(); | 539 this.updateMiniview_(); |
| 540 this.updateMenu_(); |
| 539 }, | 541 }, |
| 540 | 542 |
| 541 updateMostVisited_: function() { | 543 updateMostVisited_: function() { |
| 542 | 544 |
| 543 function getThumbnailClassName(item) { | 545 function getThumbnailClassName(item) { |
| 544 return 'thumbnail-container' + | 546 return 'thumbnail-container' + |
| 545 (item.pinned ? ' pinned' : '') + | 547 (item.pinned ? ' pinned' : '') + |
| 546 (item.filler ? ' filler' : ''); | 548 (item.filler ? ' filler' : ''); |
| 547 } | 549 } |
| 548 | 550 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 602 var a = span.appendChild(document.createElement('a')); | 604 var a = span.appendChild(document.createElement('a')); |
| 603 a.href = item.url; | 605 a.href = item.url; |
| 604 a.textContent = item.title; | 606 a.textContent = item.title; |
| 605 a.style.backgroundImage = url('chrome://favicon/' + item.url); | 607 a.style.backgroundImage = url('chrome://favicon/' + item.url); |
| 606 a.className = 'item'; | 608 a.className = 'item'; |
| 607 this.miniview.appendChild(span); | 609 this.miniview.appendChild(span); |
| 608 } | 610 } |
| 609 updateMiniviewClipping(this.miniview); | 611 updateMiniviewClipping(this.miniview); |
| 610 }, | 612 }, |
| 611 | 613 |
| 614 updateMenu_: function() { |
| 615 clearClosedMenu(this.menu); |
| 616 var data = this.data.slice(0, MAX_MINIVIEW_ITEMS); |
| 617 for (var i = 0, item; item = data[i]; i++) { |
| 618 if (!item.filler) { |
| 619 addClosedMenuEntry( |
| 620 this.menu, item.url, item.title, 'chrome://favicon/' + item.url); |
| 621 } |
| 622 } |
| 623 addClosedMenuFooter( |
| 624 this.menu, 'most-visited', MINIMIZED_THUMB, Section.THUMB); |
| 625 }, |
| 626 |
| 612 handleClick_: function(e) { | 627 handleClick_: function(e) { |
| 613 var target = e.target; | 628 var target = e.target; |
| 614 if (target.classList.contains('pin')) { | 629 if (target.classList.contains('pin')) { |
| 615 this.togglePinned_(getItem(target)); | 630 this.togglePinned_(getItem(target)); |
| 616 e.preventDefault(); | 631 e.preventDefault(); |
| 617 } else if (target.classList.contains('remove')) { | 632 } else if (target.classList.contains('remove')) { |
| 618 this.blacklist(getItem(target)); | 633 this.blacklist(getItem(target)); |
| 619 e.preventDefault(); | 634 e.preventDefault(); |
| 620 } else { | 635 } else { |
| 621 var item = getItem(target); | 636 var item = getItem(target); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 634 handleKeyDown_: function(e) { | 649 handleKeyDown_: function(e) { |
| 635 if (!IS_MAC && e.keyCode == 46 || // Del | 650 if (!IS_MAC && e.keyCode == 46 || // Del |
| 636 IS_MAC && e.metaKey && e.keyCode == 8) { // Cmd + Backspace | 651 IS_MAC && e.metaKey && e.keyCode == 8) { // Cmd + Backspace |
| 637 this.blacklist(e.target); | 652 this.blacklist(e.target); |
| 638 } | 653 } |
| 639 } | 654 } |
| 640 }; | 655 }; |
| 641 | 656 |
| 642 return MostVisited; | 657 return MostVisited; |
| 643 })(); | 658 })(); |
| OLD | NEW |