annotate Applications/StoneWebViewer/Resources/Graveyard/print.js @ 1596:4fb8fdf03314

removed annoying whitespace
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 26 Oct 2020 17:51:42 +0100
parents 8c5f9864545f
children 05b55b89a134
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1589
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
1 /**
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
2 * Stone of Orthanc
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
4 * Department, University Hospital of Liege, Belgium
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
5 * Copyright (C) 2017-2020 Osimis S.A., Belgium
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
6 *
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
7 * This program is free software: you can redistribute it and/or
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
8 * modify it under the terms of the GNU Affero General Public License
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
9 * as published by the Free Software Foundation, either version 3 of
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
10 * the License, or (at your option) any later version.
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
11 *
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
12 * This program is distributed in the hope that it will be useful, but
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
15 * Affero General Public License for more details.
1596
4fb8fdf03314 removed annoying whitespace
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1589
diff changeset
16 *
1589
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
17 * You should have received a copy of the GNU Affero General Public License
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
19 **/
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
20
8c5f9864545f adding missing headers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1575
diff changeset
21
1575
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 function beforePrint(event){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 console.log('beforePrint');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 var $body = $('body');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 $body.addClass('print');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 // because firefox does not support/executes codes after the cloned document as been rendered
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 // https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1048317
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 // we cannot calculate using the good body size for the clone document
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 // so we have to hardcode the body width (meaning we can only renders in A4 in firefox);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 var uaParser = new UAParser();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 var isFirefox = (uaParser.getBrowser().name === 'Firefox');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 var isIE = (uaParser.getBrowser().name === 'IE');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 var isEdge = (uaParser.getBrowser().name === 'Edge');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 console.log('ua parser', uaParser.getBrowser());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 if(isFirefox || isIE || isEdge){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 if (0) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 // This is Letter
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 $body.css('width', '8.5in');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 $body.css('height', '11in');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 // This is A4
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 //$body.css('width', '210mm');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 //$body.css('height', '297mm');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 $body.css('width', '210mm');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 $body.css('height', '297mm'); // Setting "297mm" makes Firefox create 2 pages
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 // console.log('html size', $html.width(), $html.height());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 if(isIE){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 window.alert('GENERAL_PARAGRAPHS.INCOMPATIBLE_PRINT_BROWSER');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 console.log('body size', $body.width(), $body.height());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 var $splitpane = $('#viewport');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 var splitpaneSize = {width: $splitpane.width(), height: $splitpane.height()};
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 console.log(splitpaneSize);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 var panesCount = {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 x: app.layoutCountX,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 y: app.layoutCountY
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 var panes = [];
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 $('#viewport canvas').each(function(key, value) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68 if ($(value).is(':visible')) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 console.log(value);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 panes.push(value);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 });
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 console.log(panesCount);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 if (0){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 for(var i = 0; i < panes.length; i++){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78 var canvas = panes[i];
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 var paneSize = {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 originalWidth: $(canvas).width(), //canvas.getBoundingClientRect().width,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 originalHeight: $(canvas).height(), //canvas.getBoundingClientRect().height,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 originalRatio: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 paneFinalWidth: splitpaneSize.width / panesCount.x,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84 paneFinalHeight: splitpaneSize.height / panesCount.y,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 paneFinalRatio: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 canvasFinalWidth: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 canvasFinalHeight: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88 canvasFinalRatio: 0
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89 };
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90 paneSize.originalRatio = paneSize.originalWidth / paneSize.originalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 paneSize.paneFinalRatio = paneSize.paneFinalWidth / paneSize.paneFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
92
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93 if(paneSize.paneFinalRatio > 1){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 // If pane width ratio means it's width is larger than it's height
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 if(paneSize.paneFinalRatio > paneSize.originalRatio){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 // the final pane is larger than the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97 // So we should fit on the height to recalc the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 console.log('case 1');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 paneSize.canvasFinalHeight = paneSize.paneFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 paneSize.canvasFinalWidth = paneSize.canvasFinalHeight * paneSize.originalRatio; // Then we calc the width according the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 // the final pane is higher than or equal to the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 // So we should fit on the width
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 console.log('case 2');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 paneSize.canvasFinalWidth = paneSize.paneFinalWidth;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 paneSize.canvasFinalHeight = paneSize.canvasFinalWidth / paneSize.originalRatio; // Then we calc the width according the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
110 // If pane width ratio means it's height is higher than it's height
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 if(paneSize.paneFinalRatio > paneSize.originalRatio){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 // the final pane is larger than the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 // So we should fit on the height to recalc the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114 console.log('case 3');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 paneSize.canvasFinalHeight = paneSize.paneFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 paneSize.canvasFinalWidth = paneSize.canvasFinalHeight * paneSize.originalRatio; // Then we calc the width according the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118 // the final pane is higher than or equal to the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119 // So we should fit on the width
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 console.log('case 4');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 paneSize.canvasFinalWidth = paneSize.paneFinalWidth;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122 paneSize.canvasFinalHeight = paneSize.canvasFinalWidth / paneSize.originalRatio; // Then we calc the width according the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127 paneSize.canvasFinalRatio = paneSize.canvasFinalWidth / paneSize.canvasFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 console.log('paneSizes:', paneSize, 'splitpaneSize:', splitpaneSize, 'panesCount:', panesCount);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 //canvas.resizeCanvas(paneSize.canvasFinalWidth, paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 //canvas.draw();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 console.log(paneSize.canvasFinalWidth + ' ' + paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 /*canvas.width = Math.round(paneSize.canvasFinalWidth);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 canvas.height = Math.round(paneSize.canvasFinalHeight);*/
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 $(canvas).width(paneSize.canvasFinalWidth);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 $(canvas).height(paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140 /*
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141 https://stackoverflow.com/questions/27863783/javascript-canvas-disappears-after-changing-width
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 var buffer = document.getElementById('buffer');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 var context = canvas.getContext('2d');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145 console.log(context);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 var bufferContext = buffer.getContext('2d');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 console.log(bufferContext);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 bufferContext.drawImage(canvas, 0, 0); //Make a copy of the canvas to hidden buffer
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150 canvas.width = Math.round(paneSize.canvasFinalWidth);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151 canvas.height = Math.round(paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152 context.drawImage(buffer, 0, 0); */
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 for(var i = 0; i < panes.length; i++){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 var canvas = panes[i];
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 $(canvas).width($(canvas).parent().width());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 $(canvas).height($(canvas).parent().height());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 stone.AllViewportsUpdateSize(false);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 $(window).trigger('resize'); // to force screen and canvas recalculation
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 };
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 function afterPrint(){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168 console.log('afterprint');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169 var $body = $('body');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170 // var $html = $('html');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 $body.removeClass('print');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 $body.css('width', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 $body.css('height', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 $('#viewport canvas').css('width', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 $('#viewport canvas').css('height', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 stone.AllViewportsUpdateSize(false);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 $(window).trigger('resize'); // to force screen and canvas recalculation
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180 window.addEventListener('beforeprint', function(event){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181 beforePrint(event);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182 });
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
183
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184 var printMedia = window.matchMedia('print');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185 printMedia.addListener(function(mql) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186 if(mql.matches) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 console.log('webkit equivalent of onbeforeprint');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 beforePrint();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190 });
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
192 window.addEventListener('afterprint', function(){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
193 afterPrint();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
194 });$
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
195
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
196 /*vm.cancelPrintMode = function(){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
197 afterPrint();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
198 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
199 */