OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 /** | 5 /** |
6 * Slide mode displays a single image and has a set of controls to navigate | 6 * Slide mode displays a single image and has a set of controls to navigate |
7 * between the images and to edit an image. | 7 * between the images and to edit an image. |
8 * | 8 * |
9 * @param {!HTMLElement} container Main container element. | 9 * @param {!HTMLElement} container Main container element. |
10 * @param {!HTMLElement} content Content container element. | 10 * @param {!HTMLElement} content Content container element. |
11 * @param {!HTMLElement} toolbar Toolbar element. | 11 * @param {!HTMLElement} toolbar Toolbar element. |
12 * @param {!ImageEditor.Prompt} prompt Prompt. | 12 * @param {!ImageEditor.Prompt} prompt Prompt. |
13 * @param {!ErrorBanner} errorBanner Error banner. | 13 * @param {!ErrorBanner} errorBanner Error banner. |
14 * @param {!cr.ui.ArrayDataModel} dataModel Data model. | 14 * @param {!cr.ui.ArrayDataModel} dataModel Data model. |
15 * @param {!cr.ui.ListSelectionModel} selectionModel Selection model. | 15 * @param {!cr.ui.ListSelectionModel} selectionModel Selection model. |
16 * @param {!Object} context Context. | 16 * @param {!Object} context Context. |
17 * @param {!VolumeManager} volumeManager Volume manager. | 17 * @param {!VolumeManager} volumeManager Volume manager. |
18 * @param {function(function())} toggleMode Function to toggle the Gallery mode. | 18 * @param {function(function())} toggleMode Function to toggle the Gallery mode. |
19 * @param {function(string):string} displayStringFunction String formatting | 19 * @param {function(string):string} displayStringFunction String formatting |
20 * function. | 20 * function. |
21 * @constructor | 21 * @constructor |
22 * @struct | 22 * @struct |
| 23 * @extends {cr.EventTarget} |
23 */ | 24 */ |
24 function SlideMode(container, content, toolbar, prompt, errorBanner, dataModel, | 25 function SlideMode(container, content, toolbar, prompt, errorBanner, dataModel, |
25 selectionModel, context, volumeManager, toggleMode, displayStringFunction) { | 26 selectionModel, context, volumeManager, toggleMode, displayStringFunction) { |
26 /** | 27 /** |
27 * @type {!HTMLElement} | 28 * @type {!HTMLElement} |
28 * @private | 29 * @private |
29 * @const | 30 * @const |
30 */ | 31 */ |
31 this.container_ = container; | 32 this.container_ = container; |
32 | 33 |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 */ | 498 */ |
498 SlideMode.prototype.getTitle = function() { return 'GALLERY_SLIDE'; }; | 499 SlideMode.prototype.getTitle = function() { return 'GALLERY_SLIDE'; }; |
499 | 500 |
500 /** | 501 /** |
501 * @return {!Viewport} Viewport. | 502 * @return {!Viewport} Viewport. |
502 */ | 503 */ |
503 SlideMode.prototype.getViewport = function() { return this.viewport_; }; | 504 SlideMode.prototype.getViewport = function() { return this.viewport_; }; |
504 | 505 |
505 /** | 506 /** |
506 * Load items, display the selected item. | 507 * Load items, display the selected item. |
507 * @param {!ImageRect} zoomFromRect Rectangle for zoom effect. | 508 * @param {ImageRect} zoomFromRect Rectangle for zoom effect. |
508 * @param {function()} displayCallback Called when the image is displayed. | 509 * @param {function()} displayCallback Called when the image is displayed. |
509 * @param {function()} loadCallback Called when the image is displayed. | 510 * @param {function()} loadCallback Called when the image is displayed. |
510 */ | 511 */ |
511 SlideMode.prototype.enter = function( | 512 SlideMode.prototype.enter = function( |
512 zoomFromRect, displayCallback, loadCallback) { | 513 zoomFromRect, displayCallback, loadCallback) { |
513 this.sequenceDirection_ = 0; | 514 this.sequenceDirection_ = 0; |
514 this.sequenceLength_ = 0; | 515 this.sequenceLength_ = 0; |
515 | 516 |
516 var loadDone = function(loadType, delay) { | 517 var loadDone = function(loadType, delay) { |
517 this.active_ = true; | 518 this.active_ = true; |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
585 // Call load callback. | 586 // Call load callback. |
586 if (loadCallback) | 587 if (loadCallback) |
587 loadCallback(); | 588 loadCallback(); |
588 }.bind(this)).catch(function(error) { | 589 }.bind(this)).catch(function(error) { |
589 console.error(error.stack, error); | 590 console.error(error.stack, error); |
590 }); | 591 }); |
591 }; | 592 }; |
592 | 593 |
593 /** | 594 /** |
594 * Leave the mode. | 595 * Leave the mode. |
595 * @param {!ImageRect} zoomToRect Rectangle for zoom effect. | 596 * @param {ImageRect} zoomToRect Rectangle for zoom effect. |
596 * @param {function()} callback Called when the image is committed and | 597 * @param {function()} callback Called when the image is committed and |
597 * the zoom-out animation has started. | 598 * the zoom-out animation has started. |
598 */ | 599 */ |
599 SlideMode.prototype.leave = function(zoomToRect, callback) { | 600 SlideMode.prototype.leave = function(zoomToRect, callback) { |
600 var commitDone = function() { | 601 var commitDone = function() { |
601 this.stopEditing_(); | 602 this.stopEditing_(); |
602 this.stopSlideshow_(); | 603 this.stopSlideshow_(); |
603 ImageUtil.setAttribute(this.arrowBox_, 'active', false); | 604 ImageUtil.setAttribute(this.arrowBox_, 'active', false); |
604 this.selectionModel_.removeEventListener( | 605 this.selectionModel_.removeEventListener( |
605 'change', this.onSelectionBound_); | 606 'change', this.onSelectionBound_); |
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1067 SlideMode.prototype.requestPrefetch = function(direction, delay) { | 1068 SlideMode.prototype.requestPrefetch = function(direction, delay) { |
1068 if (this.getItemCount_() <= 1) return; | 1069 if (this.getItemCount_() <= 1) return; |
1069 | 1070 |
1070 var index = this.getNextSelectedIndex_(direction); | 1071 var index = this.getNextSelectedIndex_(direction); |
1071 this.imageView_.prefetch(this.getItem(index), delay); | 1072 this.imageView_.prefetch(this.getItem(index), delay); |
1072 }; | 1073 }; |
1073 | 1074 |
1074 // Event handlers. | 1075 // Event handlers. |
1075 | 1076 |
1076 /** | 1077 /** |
1077 * Unload handler, to be called from the top frame. | |
1078 * @param {boolean} exiting True if the app is exiting. | |
1079 */ | |
1080 SlideMode.prototype.onUnload = function(exiting) { | |
1081 }; | |
1082 | |
1083 /** | |
1084 * Click handler for the image container. | 1078 * Click handler for the image container. |
1085 * | 1079 * |
1086 * @param {!Event} event Mouse click event. | 1080 * @param {!Event} event Mouse click event. |
1087 * @private | 1081 * @private |
1088 */ | 1082 */ |
1089 SlideMode.prototype.onClick_ = function(event) { | 1083 SlideMode.prototype.onClick_ = function(event) { |
1090 }; | 1084 }; |
1091 | 1085 |
1092 /** | 1086 /** |
1093 * Click handler for the entire document. | 1087 * Click handler for the entire document. |
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1859 var event = assertInstanceof(event, MouseEvent); | 1853 var event = assertInstanceof(event, MouseEvent); |
1860 var viewport = this.slideMode_.getViewport(); | 1854 var viewport = this.slideMode_.getViewport(); |
1861 if (!this.enabled_ || !viewport.isZoomed()) | 1855 if (!this.enabled_ || !viewport.isZoomed()) |
1862 return; | 1856 return; |
1863 this.stopOperation(); | 1857 this.stopOperation(); |
1864 viewport.setOffset( | 1858 viewport.setOffset( |
1865 viewport.getOffsetX() + event.wheelDeltaX, | 1859 viewport.getOffsetX() + event.wheelDeltaX, |
1866 viewport.getOffsetY() + event.wheelDeltaY); | 1860 viewport.getOffsetY() + event.wheelDeltaY); |
1867 this.slideMode_.applyViewportChange(); | 1861 this.slideMode_.applyViewportChange(); |
1868 }; | 1862 }; |
OLD | NEW |