annotate Applications/StoneWebViewer/Resources/Graveyard/print.js @ 1575:e4a52cbbdd70

working on print
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 23 Sep 2020 17:25:25 +0200
parents
children 8c5f9864545f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1575
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 function beforePrint(event){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 console.log('beforePrint');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 var $body = $('body');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 $body.addClass('print');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 // 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
7 // https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1048317
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 // 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
9 // 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
10 var uaParser = new UAParser();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 var isFirefox = (uaParser.getBrowser().name === 'Firefox');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 var isIE = (uaParser.getBrowser().name === 'IE');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 var isEdge = (uaParser.getBrowser().name === 'Edge');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 console.log('ua parser', uaParser.getBrowser());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 if(isFirefox || isIE || isEdge){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 if (0) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 // This is Letter
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 $body.css('width', '8.5in');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 $body.css('height', '11in');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 // This is A4
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 //$body.css('width', '210mm');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 //$body.css('height', '297mm');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 $body.css('width', '210mm');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 $body.css('height', '297mm'); // Setting "297mm" makes Firefox create 2 pages
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
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 // console.log('html size', $html.width(), $html.height());
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
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31 if(isIE){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 window.alert('GENERAL_PARAGRAPHS.INCOMPATIBLE_PRINT_BROWSER');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 console.log('body size', $body.width(), $body.height());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 var $splitpane = $('#viewport');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 var splitpaneSize = {width: $splitpane.width(), height: $splitpane.height()};
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39 console.log(splitpaneSize);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 var panesCount = {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 x: app.layoutCountX,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 y: app.layoutCountY
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45 var panes = [];
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 $('#viewport canvas').each(function(key, value) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 if ($(value).is(':visible')) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 console.log(value);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 panes.push(value);
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
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 console.log(panesCount);
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 (0){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56 for(var i = 0; i < panes.length; i++){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 var canvas = panes[i];
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 var paneSize = {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59 originalWidth: $(canvas).width(), //canvas.getBoundingClientRect().width,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 originalHeight: $(canvas).height(), //canvas.getBoundingClientRect().height,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
61 originalRatio: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 paneFinalWidth: splitpaneSize.width / panesCount.x,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 paneFinalHeight: splitpaneSize.height / panesCount.y,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 paneFinalRatio: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 canvasFinalWidth: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 canvasFinalHeight: 0,
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 canvasFinalRatio: 0
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 paneSize.originalRatio = paneSize.originalWidth / paneSize.originalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 paneSize.paneFinalRatio = paneSize.paneFinalWidth / paneSize.paneFinalHeight;
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 if(paneSize.paneFinalRatio > 1){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 // 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
74 if(paneSize.paneFinalRatio > paneSize.originalRatio){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 // the final pane is larger than the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 // So we should fit on the height to recalc the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 console.log('case 1');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78 paneSize.canvasFinalHeight = paneSize.paneFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 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
80 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 // the final pane is higher than or equal to the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82 // So we should fit on the width
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 console.log('case 2');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84 paneSize.canvasFinalWidth = paneSize.paneFinalWidth;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 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
86
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89 // 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
90 if(paneSize.paneFinalRatio > paneSize.originalRatio){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 // the final pane is larger than the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
92 // So we should fit on the height to recalc the ratio
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93 console.log('case 3');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 paneSize.canvasFinalHeight = paneSize.paneFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
95 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
96 } else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
97 // the final pane is higher than or equal to the original
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
98 // So we should fit on the width
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
99 console.log('case 4');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
100 paneSize.canvasFinalWidth = paneSize.paneFinalWidth;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
101 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
102
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
103 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
104 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
105
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
106 paneSize.canvasFinalRatio = paneSize.canvasFinalWidth / paneSize.canvasFinalHeight;
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
107 console.log('paneSizes:', paneSize, 'splitpaneSize:', splitpaneSize, 'panesCount:', panesCount);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
108 //canvas.resizeCanvas(paneSize.canvasFinalWidth, paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
109 //canvas.draw();
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 console.log(paneSize.canvasFinalWidth + ' ' + paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
112 /*canvas.width = Math.round(paneSize.canvasFinalWidth);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
113 canvas.height = Math.round(paneSize.canvasFinalHeight);*/
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
114
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
115 $(canvas).width(paneSize.canvasFinalWidth);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
116 $(canvas).height(paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
117
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
118
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
119 /*
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
120 https://stackoverflow.com/questions/27863783/javascript-canvas-disappears-after-changing-width
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
121
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
122 var buffer = document.getElementById('buffer');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
123 var context = canvas.getContext('2d');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124 console.log(context);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 var bufferContext = buffer.getContext('2d');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126 console.log(bufferContext);
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 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
129 canvas.width = Math.round(paneSize.canvasFinalWidth);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 canvas.height = Math.round(paneSize.canvasFinalHeight);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 context.drawImage(buffer, 0, 0); */
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 else {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 for(var i = 0; i < panes.length; i++){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 var canvas = panes[i];
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 $(canvas).width($(canvas).parent().width());
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138 $(canvas).height($(canvas).parent().height());
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
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 stone.AllViewportsUpdateSize(false);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 $(window).trigger('resize'); // to force screen and canvas recalculation
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 };
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 function afterPrint(){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 console.log('afterprint');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148 var $body = $('body');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 // var $html = $('html');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150 $body.removeClass('print');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151 $body.css('width', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152 $body.css('height', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 $('#viewport canvas').css('width', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 $('#viewport canvas').css('height', '100%');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 stone.AllViewportsUpdateSize(false);
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 $(window).trigger('resize'); // to force screen and canvas recalculation
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
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 window.addEventListener('beforeprint', function(event){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 beforePrint(event);
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 var printMedia = window.matchMedia('print');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 printMedia.addListener(function(mql) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 if(mql.matches) {
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166 console.log('webkit equivalent of onbeforeprint');
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 beforePrint();
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
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 window.addEventListener('afterprint', function(){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 afterPrint();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 });$
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 /*vm.cancelPrintMode = function(){
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 afterPrint();
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 }
e4a52cbbdd70 working on print
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 */