OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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('ntp', function() { | 5 cr.define('ntp', function() { |
6 'use strict'; | 6 'use strict'; |
7 | 7 |
8 // We can't pass the currently dragging tile via dataTransfer because of | 8 // We can't pass the currently dragging tile via dataTransfer because of |
9 // http://crbug.com/31037 | 9 // http://crbug.com/31037 |
10 var currentlyDraggingTile = null; | 10 var currentlyDraggingTile = null; |
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 * instance is removed from the DOM. | 551 * instance is removed from the DOM. |
552 * @private | 552 * @private |
553 */ | 553 */ |
554 tearDown_: function() { | 554 tearDown_: function() { |
555 this.eventTracker.removeAll(); | 555 this.eventTracker.removeAll(); |
556 }, | 556 }, |
557 | 557 |
558 /** | 558 /** |
559 * Appends a tile to the end of the tile grid. | 559 * Appends a tile to the end of the tile grid. |
560 * @param {HTMLElement} tileElement The contents of the tile. | 560 * @param {HTMLElement} tileElement The contents of the tile. |
561 * @param {?boolean} animate If true, the append will be animated. | 561 * @param {boolean} animate If true, the append will be animated. |
562 * @protected | 562 * @protected |
563 */ | 563 */ |
564 appendTile: function(tileElement, animate) { | 564 appendTile: function(tileElement, animate) { |
565 this.addTileAt(tileElement, this.tileElements_.length, animate); | 565 this.addTileAt(tileElement, this.tileElements_.length, animate); |
566 }, | 566 }, |
567 | 567 |
568 /** | 568 /** |
569 * Adds the given element to the tile grid. | 569 * Adds the given element to the tile grid. |
570 * @param {Node} tileElement The tile object/node to insert. | 570 * @param {Node} tileElement The tile object/node to insert. |
571 * @param {number} index The location in the tile grid to insert it at. | 571 * @param {number} index The location in the tile grid to insert it at. |
572 * @param {boolean=} opt_animate If true, the tile in question will be | 572 * @param {boolean} animate If true, the tile in question will be |
573 * animated (other tiles, if they must reposition, do not animate). | 573 * animated (other tiles, if they must reposition, do not animate). |
574 * @protected | 574 * @protected |
575 */ | 575 */ |
576 addTileAt: function(tileElement, index, opt_animate) { | 576 addTileAt: function(tileElement, index, animate) { |
577 this.classList.remove('animating-tile-page'); | 577 this.classList.remove('animating-tile-page'); |
578 if (opt_animate) | 578 if (animate) |
579 tileElement.classList.add('new-tile-contents'); | 579 tileElement.classList.add('new-tile-contents'); |
580 | 580 |
581 // Make sure the index is positive and either in the the bounds of | 581 // Make sure the index is positive and either in the the bounds of |
582 // this.tileElements_ or at the end (meaning append). | 582 // this.tileElements_ or at the end (meaning append). |
583 assert(index >= 0 && index <= this.tileElements_.length); | 583 assert(index >= 0 && index <= this.tileElements_.length); |
584 | 584 |
585 var wrapperDiv = new Tile(tileElement); | 585 var wrapperDiv = new Tile(tileElement); |
586 // If is out of the bounds of the tile element list, .insertBefore() will | 586 // If is out of the bounds of the tile element list, .insertBefore() will |
587 // act just like appendChild(). | 587 // act just like appendChild(). |
588 this.tileGrid_.insertBefore(wrapperDiv, this.tileElements_[index]); | 588 this.tileGrid_.insertBefore(wrapperDiv, this.tileElements_[index]); |
589 this.calculateLayoutValues_(); | 589 this.calculateLayoutValues_(); |
590 this.heightChanged_(); | 590 this.heightChanged_(); |
591 | 591 |
592 this.repositionTiles_(); | 592 this.repositionTiles_(); |
593 this.fireAddedEvent(wrapperDiv, index, !!opt_animate); | 593 this.fireAddedEvent(wrapperDiv, index, animate); |
594 }, | 594 }, |
595 | 595 |
596 /** | 596 /** |
597 * Notify interested subscribers that a tile has been removed from this | 597 * Notify interested subscribers that a tile has been removed from this |
598 * page. | 598 * page. |
599 * @param {Tile} tile The newly added tile. | 599 * @param {Tile} tile The newly added tile. |
600 * @param {number} index The index of the tile that was added. | 600 * @param {number} index The index of the tile that was added. |
601 * @param {boolean} wasAnimated Whether the removal was animated. | 601 * @param {boolean} wasAnimated Whether the removal was animated. |
602 */ | 602 */ |
603 fireAddedEvent: function(tile, index, wasAnimated) { | 603 fireAddedEvent: function(tile, index, wasAnimated) { |
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1163 */ | 1163 */ |
1164 doDragLeave: function(e) { | 1164 doDragLeave: function(e) { |
1165 this.cleanupDrag(); | 1165 this.cleanupDrag(); |
1166 }, | 1166 }, |
1167 | 1167 |
1168 /** | 1168 /** |
1169 * Performs all actions necessary when a drag enters the tile page. | 1169 * Performs all actions necessary when a drag enters the tile page. |
1170 * @param {Event} e A mouseover event for the drag enter. | 1170 * @param {Event} e A mouseover event for the drag enter. |
1171 */ | 1171 */ |
1172 doDragEnter: function(e) { | 1172 doDragEnter: function(e) { |
1173 | |
1174 // Applies the mask so doppleganger tiles disappear into the fog. | 1173 // Applies the mask so doppleganger tiles disappear into the fog. |
1175 this.updateMask_(); | 1174 this.updateMask_(); |
1176 | 1175 |
1177 this.classList.add('animating-tile-page'); | 1176 this.classList.add('animating-tile-page'); |
1178 this.withinPageDrag_ = this.contains(currentlyDraggingTile); | 1177 this.withinPageDrag_ = this.contains(currentlyDraggingTile); |
1179 this.dragItemIndex_ = this.withinPageDrag_ ? | 1178 this.dragItemIndex_ = this.withinPageDrag_ ? |
1180 currentlyDraggingTile.index : this.tileElements_.length; | 1179 currentlyDraggingTile.index : this.tileElements_.length; |
1181 this.currentDropIndex_ = this.dragItemIndex_; | 1180 this.currentDropIndex_ = this.dragItemIndex_; |
1182 | 1181 |
1183 // The new tile may change the number of rows, hence the top margin | 1182 // The new tile may change the number of rows, hence the top margin |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1338 assert(false); | 1337 assert(false); |
1339 }, | 1338 }, |
1340 }; | 1339 }; |
1341 | 1340 |
1342 return { | 1341 return { |
1343 getCurrentlyDraggingTile: getCurrentlyDraggingTile, | 1342 getCurrentlyDraggingTile: getCurrentlyDraggingTile, |
1344 setCurrentDropEffect: setCurrentDropEffect, | 1343 setCurrentDropEffect: setCurrentDropEffect, |
1345 TilePage: TilePage, | 1344 TilePage: TilePage, |
1346 }; | 1345 }; |
1347 }); | 1346 }); |
OLD | NEW |