annotate Applications/StoneWebViewer/Resources/Graveyard/print.js @ 1739:9ac2a65d4172

upgrade to year 2021
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 06 Jan 2021 17:50:00 +0100
parents 05b55b89a134
children 3889ae96d2e9
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
1739
9ac2a65d4172 upgrade to year 2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1660
diff changeset
5 * Copyright (C) 2017-2021 Osimis S.A., Belgium
1589
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
1660
05b55b89a134 use local copy of open-sans, remove ua-parser
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1596
diff changeset
22 // DEPENDENCY: https://github.com/faisalman/ua-parser-js
05b55b89a134 use local copy of open-sans, remove ua-parser
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1596
diff changeset
23
05b55b89a134 use local copy of open-sans, remove ua-parser
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1596
diff changeset
24
1575
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 function beforePrint(event){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 console.log('beforePrint');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 var $body = $('body');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 $body.addClass('print');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 // 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
31 // https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1048317
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 // 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
33 // 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
34 var uaParser = new UAParser();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 var isFirefox = (uaParser.getBrowser().name === 'Firefox');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 var isIE = (uaParser.getBrowser().name === 'IE');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 var isEdge = (uaParser.getBrowser().name === 'Edge');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 console.log('ua parser', uaParser.getBrowser());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 if(isFirefox || isIE || isEdge){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 if (0) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 // This is Letter
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 $body.css('width', '8.5in');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 $body.css('height', '11in');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 // This is A4
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 //$body.css('width', '210mm');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 //$body.css('height', '297mm');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 $body.css('width', '210mm');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 $body.css('height', '297mm'); // Setting "297mm" makes Firefox create 2 pages
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 // console.log('html size', $html.width(), $html.height());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 }
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 if(isIE){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 window.alert('GENERAL_PARAGRAPHS.INCOMPATIBLE_PRINT_BROWSER');
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
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 console.log('body size', $body.width(), $body.height());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 var $splitpane = $('#viewport');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 var splitpaneSize = {width: $splitpane.width(), height: $splitpane.height()};
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 console.log(splitpaneSize);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 var panesCount = {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 x: app.layoutCountX,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 y: app.layoutCountY
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
68
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69 var panes = [];
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 $('#viewport canvas').each(function(key, value) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 if ($(value).is(':visible')) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 console.log(value);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 panes.push(value);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 }
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
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 console.log(panesCount);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 if (0){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 for(var i = 0; i < panes.length; i++){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 var canvas = panes[i];
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 var paneSize = {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 originalWidth: $(canvas).width(), //canvas.getBoundingClientRect().width,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84 originalHeight: $(canvas).height(), //canvas.getBoundingClientRect().height,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 originalRatio: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 paneFinalWidth: splitpaneSize.width / panesCount.x,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 paneFinalHeight: splitpaneSize.height / panesCount.y,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88 paneFinalRatio: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89 canvasFinalWidth: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90 canvasFinalHeight: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 canvasFinalRatio: 0
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 paneSize.originalRatio = paneSize.originalWidth / paneSize.originalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 paneSize.paneFinalRatio = paneSize.paneFinalWidth / paneSize.paneFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
96 if(paneSize.paneFinalRatio > 1){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97 // 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
98 if(paneSize.paneFinalRatio > paneSize.originalRatio){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 // the final pane is larger than the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 // So we should fit on the height to recalc the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 console.log('case 1');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
102 paneSize.canvasFinalHeight = paneSize.paneFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 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
104 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105 // the final pane is higher than or equal to the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 // So we should fit on the width
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 console.log('case 2');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 paneSize.canvasFinalWidth = paneSize.paneFinalWidth;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 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
110
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
111 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 // 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
114 if(paneSize.paneFinalRatio > paneSize.originalRatio){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 // the final pane is larger than the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 // So we should fit on the height to recalc the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117 console.log('case 3');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118 paneSize.canvasFinalHeight = paneSize.paneFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119 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
120 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121 // the final pane is higher than or equal to the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122 // So we should fit on the width
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123 console.log('case 4');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 paneSize.canvasFinalWidth = paneSize.paneFinalWidth;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 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
126
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 paneSize.canvasFinalRatio = paneSize.canvasFinalWidth / paneSize.canvasFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 console.log('paneSizes:', paneSize, 'splitpaneSize:', splitpaneSize, 'panesCount:', panesCount);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 //canvas.resizeCanvas(paneSize.canvasFinalWidth, paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 //canvas.draw();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 console.log(paneSize.canvasFinalWidth + ' ' + paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 /*canvas.width = Math.round(paneSize.canvasFinalWidth);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 canvas.height = Math.round(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 $(canvas).width(paneSize.canvasFinalWidth);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140 $(canvas).height(paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141
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 /*
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 https://stackoverflow.com/questions/27863783/javascript-canvas-disappears-after-changing-width
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 var buffer = document.getElementById('buffer');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 var context = canvas.getContext('2d');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148 console.log(context);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 var bufferContext = buffer.getContext('2d');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150 console.log(bufferContext);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152 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
153 canvas.width = Math.round(paneSize.canvasFinalWidth);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 canvas.height = Math.round(paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 context.drawImage(buffer, 0, 0); */
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 for(var i = 0; i < panes.length; i++){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 var canvas = panes[i];
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 $(canvas).width($(canvas).parent().width());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 $(canvas).height($(canvas).parent().height());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 }
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 stone.AllViewportsUpdateSize(false);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 $(window).trigger('resize'); // to force screen and canvas recalculation
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168 };
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170 function afterPrint(){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 console.log('afterprint');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 var $body = $('body');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 // var $html = $('html');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 $body.removeClass('print');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 $body.css('width', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 $body.css('height', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 $('#viewport canvas').css('width', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 $('#viewport canvas').css('height', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179 stone.AllViewportsUpdateSize(false);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180 $(window).trigger('resize'); // to force screen and canvas recalculation
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181 }
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 window.addEventListener('beforeprint', function(event){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184 beforePrint(event);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185 });
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
186
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
187 var printMedia = window.matchMedia('print');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188 printMedia.addListener(function(mql) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 if(mql.matches) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190 console.log('webkit equivalent of onbeforeprint');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191 beforePrint();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
192 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
193 });
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 window.addEventListener('afterprint', function(){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
196 afterPrint();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
197 });$
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 /*vm.cancelPrintMode = function(){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
200 afterPrint();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
201 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
202 */