| 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('print_preview', function() { | 5 cr.define('print_preview', function() { |
| 6 'strict'; | 6 'strict'; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * Creates a PreviewArea object. It represents the area where the preview | 9 * Creates a PreviewArea object. It represents the area where the preview |
| 10 * document is displayed. | 10 * document is displayed. |
| 11 * @constructor | 11 * @constructor |
| 12 */ | 12 */ |
| 13 function PreviewArea() { | 13 function PreviewArea() { |
| 14 // The embedded pdf plugin object. | 14 // The embedded pdf plugin object. |
| 15 this.pdfPlugin_ = null; | 15 this.pdfPlugin_ = null; |
| 16 | 16 |
| 17 // True if the pdf document is loaded in the preview area. | 17 // True if the pdf document is loaded in the preview area. |
| 18 this.pdfLoaded_ = false; | 18 this.pdfLoaded_ = false; |
| 19 | 19 |
| 20 // Contains the zoom level just before a new preview is requested so the | 20 // Contains the zoom level just before a new preview is requested so the |
| 21 // same zoom level can be restored. | 21 // same zoom level can be restored. |
| 22 this.zoomLevel_ = null; | 22 this.zoomLevel_ = null; |
| 23 // @type {{x: number, y: number}} Contains the page offset values just | 23 // @type {{x: number, y: number}} Contains the page offset values just |
| 24 // before a new preview is requested so that the scroll amount can be | 24 // before a new preview is requested so that the scroll amount can be |
| 25 // restored later. | 25 // restored later. |
| 26 this.pageOffset_ = null; | 26 this.pageOffset_ = null; |
| 27 |
| 28 // @type {print_preview.Rect} A rectangle describing the postion of the |
| 29 // most visible page normalized with respect to the total height and width |
| 30 // of the plugin. |
| 31 this.pageLocationNormalized = null; |
| 27 } | 32 } |
| 28 | 33 |
| 29 cr.addSingletonGetter(PreviewArea); | 34 cr.addSingletonGetter(PreviewArea); |
| 30 | 35 |
| 31 PreviewArea.prototype = { | 36 PreviewArea.prototype = { |
| 32 /** | 37 /** |
| 33 * The width of the plugin area in pixels, excluding any visible scrollbars, | 38 * The width of the plugin area in pixels, excluding any visible scrollbars, |
| 34 * @type {number} | 39 * @type {number} |
| 35 */ | 40 */ |
| 36 get width() { | 41 get width() { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 | 75 |
| 71 get pdfLoaded() { | 76 get pdfLoaded() { |
| 72 return this.pdfLoaded_; | 77 return this.pdfLoaded_; |
| 73 }, | 78 }, |
| 74 | 79 |
| 75 set pdfLoaded(pdfLoaded) { | 80 set pdfLoaded(pdfLoaded) { |
| 76 this.pdfLoaded_ = pdfLoaded; | 81 this.pdfLoaded_ = pdfLoaded; |
| 77 }, | 82 }, |
| 78 | 83 |
| 79 /** | 84 /** |
| 80 * @return {print_preview.Rect} A rectangle describing the postion of the | 85 * Queries the plugin for the location of the most visible page and updates |
| 81 * most visible page normalized with respect to the total height and width | 86 * |this.pageLocationNormalized|. |
| 82 * of the plugin. | |
| 83 */ | 87 */ |
| 84 getPageLocationNormalized: function() { | 88 update: function() { |
| 89 if (!this.pdfLoaded_) |
| 90 return; |
| 85 var pluginLocation = | 91 var pluginLocation = |
| 86 this.pdfPlugin_.getPageLocationNormalized().split(';'); | 92 this.pdfPlugin_.getPageLocationNormalized().split(';'); |
| 87 return new print_preview.Rect(parseFloat(pluginLocation[0]), | 93 this.pageLocationNormalized = new print_preview.Rect( |
| 88 parseFloat(pluginLocation[1]), | 94 parseFloat(pluginLocation[0]), |
| 89 parseFloat(pluginLocation[2]), | 95 parseFloat(pluginLocation[1]), |
| 90 parseFloat(pluginLocation[3])); | 96 parseFloat(pluginLocation[2]), |
| 97 parseFloat(pluginLocation[3])); |
| 91 }, | 98 }, |
| 92 | 99 |
| 93 /** | 100 /** |
| 94 * Resets the state variables of |this|. | 101 * Resets the state variables of |this|. |
| 95 */ | 102 */ |
| 96 resetState: function() { | 103 resetState: function() { |
| 97 if (this.pdfPlugin_) { | 104 if (this.pdfPlugin_) { |
| 98 this.zoomLevel_ = this.pdfPlugin_.getZoomLevel(); | 105 this.zoomLevel_ = this.pdfPlugin_.getZoomLevel(); |
| 99 this.pageOffset_ = { | 106 this.pageOffset_ = { |
| 100 x: this.pdfPlugin_.pageXOffset(), | 107 x: this.pdfPlugin_.pageXOffset(), |
| (...skipping 19 matching lines...) Expand all Loading... |
| 120 onPDFLoaded_: function() { | 127 onPDFLoaded_: function() { |
| 121 this.pdfPlugin_ = $('pdf-viewer'); | 128 this.pdfPlugin_ = $('pdf-viewer'); |
| 122 this.pdfLoaded_ = true; | 129 this.pdfLoaded_ = true; |
| 123 if (this.zoomLevel_ != null && this.pageOffset_ != null) { | 130 if (this.zoomLevel_ != null && this.pageOffset_ != null) { |
| 124 this.pdfPlugin_.setZoomLevel(this.zoomLevel_); | 131 this.pdfPlugin_.setZoomLevel(this.zoomLevel_); |
| 125 this.pdfPlugin_.setPageXOffset(this.pageOffset_.x); | 132 this.pdfPlugin_.setPageXOffset(this.pageOffset_.x); |
| 126 this.pdfPlugin_.setPageYOffset(this.pageOffset_.y); | 133 this.pdfPlugin_.setPageYOffset(this.pageOffset_.y); |
| 127 } else { | 134 } else { |
| 128 this.pdfPlugin_.fitToHeight(); | 135 this.pdfPlugin_.fitToHeight(); |
| 129 } | 136 } |
| 137 this.update(); |
| 130 } | 138 } |
| 131 }; | 139 }; |
| 132 | 140 |
| 133 return { | 141 return { |
| 134 PreviewArea: PreviewArea, | 142 PreviewArea: PreviewArea, |
| 135 }; | 143 }; |
| 136 }); | 144 }); |
| OLD | NEW |