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; |
| 32 |
27 this.addEventListeners_(); | 33 this.addEventListeners_(); |
28 } | 34 } |
29 | 35 |
30 cr.addSingletonGetter(PreviewArea); | 36 cr.addSingletonGetter(PreviewArea); |
31 | 37 |
32 PreviewArea.prototype = { | 38 PreviewArea.prototype = { |
33 /** | 39 /** |
34 * The width of the plugin area in pixels, excluding any visible scrollbars, | 40 * The width of the plugin area in pixels, excluding any visible scrollbars, |
35 * @type {number} | 41 * @type {number} |
36 */ | 42 */ |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 | 77 |
72 get pdfLoaded() { | 78 get pdfLoaded() { |
73 return this.pdfLoaded_; | 79 return this.pdfLoaded_; |
74 }, | 80 }, |
75 | 81 |
76 set pdfLoaded(pdfLoaded) { | 82 set pdfLoaded(pdfLoaded) { |
77 this.pdfLoaded_ = pdfLoaded; | 83 this.pdfLoaded_ = pdfLoaded; |
78 }, | 84 }, |
79 | 85 |
80 /** | 86 /** |
81 * @return {print_preview.Rect} A rectangle describing the postion of the | 87 * Queries the plugin for the location of the most visible page and updates |
82 * most visible page normalized with respect to the total height and width | 88 * |this.pageLocationNormalized|. |
83 * of the plugin. | |
84 */ | 89 */ |
85 getPageLocationNormalized: function() { | 90 update: function() { |
| 91 if (!this.pdfLoaded_) |
| 92 return; |
86 var pluginLocation = | 93 var pluginLocation = |
87 this.pdfPlugin_.getPageLocationNormalized().split(';'); | 94 this.pdfPlugin_.getPageLocationNormalized().split(';'); |
88 return new print_preview.Rect(parseFloat(pluginLocation[0]), | 95 this.pageLocationNormalized = new print_preview.Rect( |
89 parseFloat(pluginLocation[1]), | 96 parseFloat(pluginLocation[0]), |
90 parseFloat(pluginLocation[2]), | 97 parseFloat(pluginLocation[1]), |
91 parseFloat(pluginLocation[3])); | 98 parseFloat(pluginLocation[2]), |
| 99 parseFloat(pluginLocation[3])); |
92 }, | 100 }, |
93 | 101 |
94 /** | 102 /** |
95 * Resets the state variables of |this|. | 103 * Resets the state variables of |this|. |
96 */ | 104 */ |
97 resetState: function() { | 105 resetState: function() { |
98 if (this.pdfPlugin_) { | 106 if (this.pdfPlugin_) { |
99 this.zoomLevel_ = this.pdfPlugin_.getZoomLevel(); | 107 this.zoomLevel_ = this.pdfPlugin_.getZoomLevel(); |
100 this.pageOffset_ = { | 108 this.pageOffset_ = { |
101 x: this.pdfPlugin_.pageXOffset(), | 109 x: this.pdfPlugin_.pageXOffset(), |
(...skipping 26 matching lines...) Expand all Loading... |
128 } else { | 136 } else { |
129 this.pdfPlugin_.fitToHeight(); | 137 this.pdfPlugin_.fitToHeight(); |
130 } | 138 } |
131 } | 139 } |
132 }; | 140 }; |
133 | 141 |
134 return { | 142 return { |
135 PreviewArea: PreviewArea, | 143 PreviewArea: PreviewArea, |
136 }; | 144 }; |
137 }); | 145 }); |
OLD | NEW |