Merge pull request #6110 from Snuffleupagus/issue-6056
Refactor viewer code to fix issues with the "pageviewer" components example (issue 6056)
This commit is contained in:
commit
535b7c236e
65
web/annotations_layer_builder.css
Normal file
65
web/annotations_layer_builder.css
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/* Copyright 2014 Mozilla Foundation
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.annotationLayer .annotLink > a:hover {
|
||||||
|
opacity: 0.2;
|
||||||
|
background: #ff0;
|
||||||
|
box-shadow: 0px 2px 10px #ff0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.annotationLayer .annotText > img {
|
||||||
|
position: absolute;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.annotationLayer .annotTextContentWrapper {
|
||||||
|
position: absolute;
|
||||||
|
width: 20em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.annotationLayer .annotTextContent {
|
||||||
|
z-index: 200;
|
||||||
|
float: left;
|
||||||
|
max-width: 20em;
|
||||||
|
background-color: #FFFF99;
|
||||||
|
box-shadow: 0px 2px 5px #333;
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 0.6em;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.annotationLayer .annotTextContent > h1 {
|
||||||
|
font-size: 1em;
|
||||||
|
border-bottom: 1px solid #000000;
|
||||||
|
padding-bottom: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.annotationLayer .annotTextContent > p {
|
||||||
|
padding-top: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.annotationLayer .annotLink > a {
|
||||||
|
position: absolute;
|
||||||
|
font-size: 1em;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.annotationLayer .annotLink > a /* -ms-a */ {
|
||||||
|
background: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAA\
|
||||||
|
LAAAAAABAAEAAAIBRAA7") 0 0 repeat;
|
||||||
|
}
|
@ -14,7 +14,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
/*globals PDFJS, CustomStyle, mozL10n */
|
/*globals PDFJS, CustomStyle, mozL10n, SimpleLinkService */
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
@ -171,7 +171,8 @@ DefaultAnnotationsLayerFactory.prototype = {
|
|||||||
createAnnotationsLayerBuilder: function (pageDiv, pdfPage) {
|
createAnnotationsLayerBuilder: function (pageDiv, pdfPage) {
|
||||||
return new AnnotationsLayerBuilder({
|
return new AnnotationsLayerBuilder({
|
||||||
pageDiv: pageDiv,
|
pageDiv: pageDiv,
|
||||||
pdfPage: pdfPage
|
pdfPage: pdfPage,
|
||||||
|
linkService: new SimpleLinkService(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
@import url(text_layer_builder.css);
|
@import url(text_layer_builder.css);
|
||||||
|
@import url(annotations_layer_builder.css);
|
||||||
|
|
||||||
.pdfViewer .canvasWrapper {
|
.pdfViewer .canvasWrapper {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@ -51,12 +52,6 @@
|
|||||||
background: url('images/loading-icon.gif') center no-repeat;
|
background: url('images/loading-icon.gif') center no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pdfViewer .page .annotLink > a:hover {
|
|
||||||
opacity: 0.2;
|
|
||||||
background: #ff0;
|
|
||||||
box-shadow: 0px 2px 10px #ff0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdfPresentationMode:-webkit-full-screen .pdfViewer .page {
|
.pdfPresentationMode:-webkit-full-screen .pdfViewer .page {
|
||||||
margin-bottom: 100%;
|
margin-bottom: 100%;
|
||||||
border: 0;
|
border: 0;
|
||||||
@ -76,48 +71,3 @@
|
|||||||
margin-bottom: 100%;
|
margin-bottom: 100%;
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pdfViewer .page .annotText > img {
|
|
||||||
position: absolute;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdfViewer .page .annotTextContentWrapper {
|
|
||||||
position: absolute;
|
|
||||||
width: 20em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdfViewer .page .annotTextContent {
|
|
||||||
z-index: 200;
|
|
||||||
float: left;
|
|
||||||
max-width: 20em;
|
|
||||||
background-color: #FFFF99;
|
|
||||||
box-shadow: 0px 2px 5px #333;
|
|
||||||
border-radius: 2px;
|
|
||||||
padding: 0.6em;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdfViewer .page .annotTextContent > h1 {
|
|
||||||
font-size: 1em;
|
|
||||||
border-bottom: 1px solid #000000;
|
|
||||||
padding-bottom: 0.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdfViewer .page .annotTextContent > p {
|
|
||||||
padding-top: 0.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdfViewer .page .annotLink > a {
|
|
||||||
position: absolute;
|
|
||||||
font-size: 1em;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pdfViewer .page .annotLink > a /* -ms-a */ {
|
|
||||||
background: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAA\
|
|
||||||
LAAAAAABAAEAAAIBRAA7") 0 0 repeat;
|
|
||||||
}
|
|
||||||
|
@ -93,7 +93,7 @@ var PDFViewer = (function pdfViewer() {
|
|||||||
function PDFViewer(options) {
|
function PDFViewer(options) {
|
||||||
this.container = options.container;
|
this.container = options.container;
|
||||||
this.viewer = options.viewer || options.container.firstElementChild;
|
this.viewer = options.viewer || options.container.firstElementChild;
|
||||||
this.linkService = options.linkService || new SimpleLinkService(this);
|
this.linkService = options.linkService || new SimpleLinkService();
|
||||||
this.removePageBorders = options.removePageBorders || false;
|
this.removePageBorders = options.removePageBorders || false;
|
||||||
|
|
||||||
this.defaultRenderingQueue = !options.renderingQueue;
|
this.defaultRenderingQueue = !options.renderingQueue;
|
||||||
@ -468,14 +468,14 @@ var PDFViewer = (function pdfViewer() {
|
|||||||
var pageView = this._pages[pageNumber - 1];
|
var pageView = this._pages[pageNumber - 1];
|
||||||
|
|
||||||
if (this.isInPresentationMode) {
|
if (this.isInPresentationMode) {
|
||||||
if (this.linkService.page !== pageView.id) {
|
if (this._currentPageNumber !== pageView.id) {
|
||||||
// Avoid breaking getVisiblePages in presentation mode.
|
// Avoid breaking getVisiblePages in presentation mode.
|
||||||
this.linkService.page = pageView.id;
|
this.currentPageNumber = pageView.id;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
dest = null;
|
dest = null;
|
||||||
// Fixes the case when PDF has different page sizes.
|
// Fixes the case when PDF has different page sizes.
|
||||||
this._setScale(this.currentScaleValue, true);
|
this._setScale(this._currentScaleValue, true);
|
||||||
}
|
}
|
||||||
if (!dest) {
|
if (!dest) {
|
||||||
scrollIntoView(pageView.div);
|
scrollIntoView(pageView.div);
|
||||||
@ -523,13 +523,12 @@ var PDFViewer = (function pdfViewer() {
|
|||||||
y = dest[3];
|
y = dest[3];
|
||||||
width = dest[4] - x;
|
width = dest[4] - x;
|
||||||
height = dest[5] - y;
|
height = dest[5] - y;
|
||||||
var viewerContainer = this.container;
|
|
||||||
var hPadding = this.removePageBorders ? 0 : SCROLLBAR_PADDING;
|
var hPadding = this.removePageBorders ? 0 : SCROLLBAR_PADDING;
|
||||||
var vPadding = this.removePageBorders ? 0 : VERTICAL_PADDING;
|
var vPadding = this.removePageBorders ? 0 : VERTICAL_PADDING;
|
||||||
|
|
||||||
widthScale = (viewerContainer.clientWidth - hPadding) /
|
widthScale = (this.container.clientWidth - hPadding) /
|
||||||
width / CSS_UNITS;
|
width / CSS_UNITS;
|
||||||
heightScale = (viewerContainer.clientHeight - vPadding) /
|
heightScale = (this.container.clientHeight - vPadding) /
|
||||||
height / CSS_UNITS;
|
height / CSS_UNITS;
|
||||||
scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));
|
scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));
|
||||||
break;
|
break;
|
||||||
@ -758,22 +757,19 @@ var PDFViewer = (function pdfViewer() {
|
|||||||
})();
|
})();
|
||||||
|
|
||||||
var SimpleLinkService = (function SimpleLinkServiceClosure() {
|
var SimpleLinkService = (function SimpleLinkServiceClosure() {
|
||||||
function SimpleLinkService(pdfViewer) {
|
function SimpleLinkService() {}
|
||||||
this.pdfViewer = pdfViewer;
|
|
||||||
}
|
|
||||||
SimpleLinkService.prototype = {
|
SimpleLinkService.prototype = {
|
||||||
/**
|
/**
|
||||||
* @returns {number}
|
* @returns {number}
|
||||||
*/
|
*/
|
||||||
get page() {
|
get page() {
|
||||||
return this.pdfViewer.currentPageNumber;
|
return 0;
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @param {number} value
|
* @param {number} value
|
||||||
*/
|
*/
|
||||||
set page(value) {
|
set page(value) {},
|
||||||
this.pdfViewer.currentPageNumber = value;
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* @param dest - The PDF destination object.
|
* @param dest - The PDF destination object.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user