aboutsummaryrefslogtreecommitdiff
path: root/js/tools/ZoomTool.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/tools/ZoomTool.js')
-rwxr-xr-xjs/tools/ZoomTool.js314
1 files changed, 157 insertions, 157 deletions
diff --git a/js/tools/ZoomTool.js b/js/tools/ZoomTool.js
index 14ef0f1a..0a3b3593 100755
--- a/js/tools/ZoomTool.js
+++ b/js/tools/ZoomTool.js
@@ -65,21 +65,21 @@ exports.ZoomTool = Montage.create(DrawingTool, {
65 }, 65 },
66 66
67 HandleAltKeyDown: { 67 HandleAltKeyDown: {
68 value: function(event) { 68 value: function(event) {
69 69
70 this.setCursor(); 70 this.setCursor();
71 this._altKeyDown=true; 71 this._altKeyDown=true;
72 72
73 } 73 }
74 }, 74 },
75 75
76 HandleAltKeyUp: { 76 HandleAltKeyUp: {
77 value: function(event) { 77 value: function(event) {
78 78
79 this.setCursor(); 79 this.setCursor();
80 this._altKeyDown=false; 80 this._altKeyDown=false;
81 } 81 }
82 }, 82 },
83 83
84 HandleEscape: { 84 HandleEscape: {
85 value: function(event) { 85 value: function(event) {
@@ -98,23 +98,23 @@ exports.ZoomTool = Montage.create(DrawingTool, {
98 if(wasSelected) { 98 if(wasSelected) {
99 this.AddCustomFeedback(); 99 this.AddCustomFeedback();
100 this.eventManager.addEventListener( "toolDoubleClick", this, false); 100 this.eventManager.addEventListener( "toolDoubleClick", this, false);
101 this.application.ninja.stage.drawingCanvas.addEventListener("mousewheel", this, false); 101 this.application.ninja.stage.drawingCanvas.addEventListener("mousewheel", this, false);
102 102
103 } else { 103 } else {
104 this.RemoveCustomFeedback(); 104 this.RemoveCustomFeedback();
105 this.eventManager.removeEventListener( "toolDoubleClick", this, false); 105 this.eventManager.removeEventListener( "toolDoubleClick", this, false);
106 this.application.ninja.stage.drawingCanvas.removeEventListener("mousewheel", this, false); 106 this.application.ninja.stage.drawingCanvas.removeEventListener("mousewheel", this, false);
107 } 107 }
108 } 108 }
109 }, 109 },
110 110
111 AddCustomFeedback: { 111 AddCustomFeedback: {
112 value: function (event) { 112 value: function (event) {
113 113
114 this.application.ninja.stage.canvas.addEventListener("mousewheel", this, false); 114 this.application.ninja.stage.canvas.addEventListener("mousewheel", this, false);
115 115
116 } 116 }
117 }, 117 },
118 118
119 handleScrollValue:{ 119 handleScrollValue:{
120 value:function(){ 120 value:function(){
@@ -160,167 +160,167 @@ exports.ZoomTool = Montage.create(DrawingTool, {
160 } 160 }
161 }, 161 },
162 162
163 HandleMouseMove: 163 HandleMouseMove:
164 { 164 {
165 value : function (event) 165 value : function (event)
166 { 166 {
167 var point = webkitConvertPointFromPageToNode(this.application.ninja.stage.canvas, 167 var point = webkitConvertPointFromPageToNode(this.application.ninja.stage.canvas,
168 new WebKitPoint(event.pageX, event.pageY)); 168 new WebKitPoint(event.pageX, event.pageY));
169 // check for some reasonable amount of mouse movement 169 // check for some reasonable amount of mouse movement
170 var dx = Math.abs(point.x - this.downPoint.x), 170 var dx = Math.abs(point.x - this.downPoint.x),
171 dy = Math.abs(point.y - this.downPoint.y); 171 dy = Math.abs(point.y - this.downPoint.y);
172 172
173 if ((dx >= 10) || (dy >= 10)) 173 if ((dx >= 10) || (dy >= 10))
174 { 174 {
175 // Drawing the Marquee 175 // Drawing the Marquee
176 if(this.options.selectedElement==="zoomInTool") 176 if(this.options.selectedElement==="zoomInTool")
177 { 177 {
178 if(this._altKeyDown) 178 if(this._altKeyDown)
179 this._hasDraw=false; 179 this._hasDraw=false;
180 else 180 else
181 this._hasDraw = true; 181 this._hasDraw = true;
182 } 182 }
183 else 183 else
184 { 184 {
185 if(this._altKeyDown) 185 if(this._altKeyDown)
186 this._hasDraw=true; 186 this._hasDraw=true;
187 else 187 else
188 this._hasDraw=false; 188 this._hasDraw=false;
189 } 189 }
190 190
191 if(this._hasDraw) 191 if(this._hasDraw)
192 { 192 {
193 this.doDraw(event); 193 this.doDraw(event);
194 this._x = this.downPoint.x; 194 this._x = this.downPoint.x;
195 this._y = this.downPoint.y; 195 this._y = this.downPoint.y;
196 } 196 }
197 } 197 }
198 } 198 }
199 }, 199 },
200 200
201 handleZoomChange: 201 handleZoomChange:
202 { 202 {
203 value: function(event) 203 value: function(event)
204 { 204 {
205 } 205 }
206 }, 206 },
207 207
208 _setZoom:{ 208 _setZoom:{
209 value:function(mode,zoomFactor) 209 value:function(mode,zoomFactor)
210 { 210 {
211 var userContent = this.application.ninja.currentDocument.model.documentRoot; 211 var userContent = this.application.ninja.currentDocument.model.documentRoot;
212 this._oldValue = this.application.ninja.documentBar.zoomFactor; 212 this._oldValue = this.application.ninja.documentBar.zoomFactor;
213 213
214 var globalPt; 214 var globalPt;
215 if(this._mode==="mouseClickZoom") 215 if(this._mode==="mouseClickZoom")
216 { 216 {
217 if(this.options.selectedElement==="zoomInTool") 217 if(this.options.selectedElement==="zoomInTool")
218 { 218 {
219 if(this._altKeyDown) 219 if(this._altKeyDown)
220 this._factor = this._oldValue/(zoomFactor*100); 220 this._factor = this._oldValue/(zoomFactor*100);
221 else 221 else
222 this._factor = (zoomFactor*100)/this._oldValue; 222 this._factor = (zoomFactor*100)/this._oldValue;
223 } 223 }
224 else 224 else
225 { 225 {
226 if(this._altKeyDown) 226 if(this._altKeyDown)
227 this._factor = (zoomFactor*100)/this._oldValue; 227 this._factor = (zoomFactor*100)/this._oldValue;
228 else 228 else
229 this._factor = this._oldValue/(zoomFactor*100); 229 this._factor = this._oldValue/(zoomFactor*100);
230 } 230 }
231 231
232 var hitRec = snapManager.snap( this._layerX, this._layerY, true ); 232 var hitRec = snapManager.snap( this._layerX, this._layerY, true );
233 if (hitRec) 233 if (hitRec)
234 { 234 {
235 var elt = hitRec.getElement(); 235 var elt = hitRec.getElement();
236 if (elt) 236 if (elt)
237 { 237 {
238// console.log( "hit: " + hitRec.getElement().id ); 238// console.log( "hit: " + hitRec.getElement().id );
239 var localToGlobalMat = viewUtils.getLocalToGlobalMatrix( elt ); 239 var localToGlobalMat = viewUtils.getLocalToGlobalMatrix( elt );
240 var localPt; 240 var localPt;
241 if (elt != userContent) 241 if (elt != userContent)
242 localPt = hitRec.calculateElementPreTransformScreenPoint(); 242 localPt = hitRec.calculateElementPreTransformScreenPoint();
243 else 243 else
244 { 244 {
245 localPt = hitRec.calculateElementWorldPoint(); 245 localPt = hitRec.calculateElementWorldPoint();
246 viewUtils.pushViewportObj( userContent ); 246 viewUtils.pushViewportObj( userContent );
247 var cop = viewUtils.getCenterOfProjection(); 247 var cop = viewUtils.getCenterOfProjection();
248 this._localPt = [cop[0] + localPt[0], cop[1] + localPt[1], localPt[2]]; 248 this._localPt = [cop[0] + localPt[0], cop[1] + localPt[1], localPt[2]];
249 localPt = this._localPt.slice(); 249 localPt = this._localPt.slice();
250 viewUtils.popViewportObj(); 250 viewUtils.popViewportObj();
251 } 251 }
252 252
253 globalPt = MathUtils.transformAndDivideHomogeneousPoint( localPt, localToGlobalMat ); 253 globalPt = MathUtils.transformAndDivideHomogeneousPoint( localPt, localToGlobalMat );
254 } 254 }
255 else 255 else
256 globalPt = [this._layerX, this._layerY, 0]; 256 globalPt = [this._layerX, this._layerY, 0];
257 } 257 }
258 else 258 else
259 globalPt = [this._layerX, this._layerY, 0]; 259 globalPt = [this._layerX, this._layerY, 0];
260 } 260 }
261 else if (this._mode==="marqueeZoom") 261 else if (this._mode==="marqueeZoom")
262 { 262 {
263 this._factor = (zoomFactor*100)/this._oldValue; 263 this._factor = (zoomFactor*100)/this._oldValue;
264 264
265 var p0 = [this._x, this._y, 0]; 265 var p0 = [this._x, this._y, 0];
266 var p1 = [this._layerX, this._layerY, 0]; 266 var p1 = [this._layerX, this._layerY, 0];