aboutsummaryrefslogtreecommitdiff
path: root/js/tools/PanTool.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/tools/PanTool.js')
-rwxr-xr-xjs/tools/PanTool.js632
1 files changed, 316 insertions, 316 deletions
diff --git a/js/tools/PanTool.js b/js/tools/PanTool.js
index 6b3dbdbb..28e4c04d 100755
--- a/js/tools/PanTool.js
+++ b/js/tools/PanTool.js
@@ -38,33 +38,33 @@ var Montage = require("montage/core/core").Montage,
38 38
39exports.PanTool = Montage.create(toolBase, 39exports.PanTool = Montage.create(toolBase,
40{ 40{
41 _localPt :{value: [0,0] , writable:true}, 41 _localPt :{value: [0,0] , writable:true},
42 _worldPt :{value: [0,0] , writable:true}, 42 _worldPt :{value: [0,0] , writable:true},
43 _globalPt :{value: [0,0] , writable:true}, 43 _globalPt :{value: [0,0] , writable:true},
44 _globalToUCWorld :{value: [] , writable:true}, 44 _globalToUCWorld :{value: [] , writable:true},
45 _lastGPt :{value: [0,0], writable:true}, 45 _lastGPt :{value: [0,0], writable:true},
46 _lastY :{value: 0, writable:true}, 46 _lastY :{value: 0, writable:true},
47 47
48 _maxHorizontalScroll: {value: 0, writable:true}, 48 _maxHorizontalScroll: {value: 0, writable:true},
49 _maxVerticalScroll: {value: 0, writable:true}, 49 _maxVerticalScroll: {value: 0, writable:true},
50 50
51 Configure: { 51 Configure: {
52 value: function ( doActivate ) 52 value: function ( doActivate )
53 { 53 {
54 if (doActivate) 54 if (doActivate)
55 { 55 {
56 NJevent("enableStageMove"); 56 NJevent("enableStageMove");
57 this.eventManager.addEventListener( "toolDoubleClick", this, false); 57 this.eventManager.addEventListener( "toolDoubleClick", this, false);
58 this.application.ninja.stage.canvas.addEventListener("mousewheel", this, false); 58 this.application.ninja.stage.canvas.addEventListener("mousewheel", this, false);
59 this.activate(); 59 this.activate();
60 } 60 }
61 else 61 else
62 { 62 {
63 NJevent("disableStageMove"); 63 NJevent("disableStageMove");
64 this.eventManager.removeEventListener( "toolDoubleClick", this, false); 64 this.eventManager.removeEventListener( "toolDoubleClick", this, false);
65 this.application.ninja.stage.canvas.removeEventListener("mousewheel", this, false); 65 this.application.ninja.stage.canvas.removeEventListener("mousewheel", this, false);
66 this.deactivate(); 66 this.deactivate();
67 } 67 }
68 } 68 }
69 }, 69 },
70 70
@@ -87,23 +87,23 @@ exports.PanTool = Montage.create(toolBase,
87 }, 87 },
88 88
89 HandleMouseMove: 89 HandleMouseMove:
90 { 90 {
91 value : function (event) 91 value : function (event)
92 { 92 {
93 this.mouseMove( event ); 93 this.mouseMove( event );
94 } 94 }
95 }, 95 },
96 96
97 HandleLeftButtonUp: 97 HandleLeftButtonUp:
98 { 98 {
99 value : function ( event ) 99 value : function ( event )
100 { 100 {
101 //if(this._isDrawing) 101 //if(this._isDrawing)
102 { 102 {
103 // do one final mouse move to update the scrollbars 103 // do one final mouse move to update the scrollbars
104 this.mouseUp( event ); 104 this.mouseUp( event );
105 105
106 this.application.ninja.stage.clearDrawingCanvas(); 106 this.application.ninja.stage.clearDrawingCanvas();
107 this._hasDraw = false; 107 this._hasDraw = false;
108 this._isDrawing = false; 108 this._isDrawing = false;
109 this.isDrawing = false; 109 this.isDrawing = false;
@@ -114,248 +114,248 @@ exports.PanTool = Montage.create(toolBase,
114 HandleKeyPress: { 114 HandleKeyPress: {
115 value: function(event) { 115 value: function(event) {
116 if(event.altKey) 116 if(event.altKey)
117 { 117 {
118 this._altKeyDown = true; 118 this._altKeyDown = true;
119 } 119 }
120 else if (event.shiftKey) 120 else if (event.shiftKey)
121 { 121 {
122 if (!this._shiftKeyDown) 122 if (!this._shiftKeyDown)
123 { 123 {
124 this._shiftKeyDown = true; 124 this._shiftKeyDown = true;
125 this._shiftPt = this._lastGPt.slice(); 125 this._shiftPt = this._lastGPt.slice();
126 } 126 }
127 } 127 }
128 } 128 }
129 }, 129 },
130 130
131 HandleKeyUp: { 131 HandleKeyUp: {
132 value: function(event) { 132 value: function(event) {
133 if(event.keyCode === Keyboard.ALT) 133 if(event.keyCode === Keyboard.ALT)
134 { 134 {
135 this._altKeyDown = false; 135 this._altKeyDown = false;
136 } 136 }
137 else if (event.keyCode === Keyboard.SHIFT) 137 else if (event.keyCode === Keyboard.SHIFT)
138 { 138 {
139 this._shiftKeyDown = false; 139 this._shiftKeyDown = false;
140 } 140 }
141 } 141 }
142 }, 142 },
143 143
144 handleToolDoubleClick: 144 handleToolDoubleClick:
145 { 145 {
146 value: function () 146 value: function ()
147 { 147 {
148 var uc = this.application.ninja.currentDocument.model.documentRoot; 148 var uc = this.application.ninja.currentDocument.model.documentRoot;
149 var ucMat = viewUtils.getMatrixFromElement(uc); 149 var ucMat = viewUtils.getMatrixFromElement(uc);
150 150
151 var noTrans = ucMat.slice(); 151 var noTrans = ucMat.slice();
152 noTrans[12] = 0; noTrans[13] = 0; noTrans[14] = 0; 152 noTrans[12] = 0; noTrans[13] = 0; noTrans[14] = 0;
153 var ucMatInv = glmat4.inverse( ucMat, [] ); 153 var ucMatInv = glmat4.inverse( ucMat, [] );
154 var deltaMat = glmat4.multiply( noTrans, ucMatInv, [] ); 154 var deltaMat = glmat4.multiply( noTrans, ucMatInv, [] );
155 155
156 this.application.ninja.stage.centerStage(); 156 this.application.ninja.stage.centerStage();
157 157
158 this.applyDeltaMat( deltaMat ); 158 this.applyDeltaMat( deltaMat );
159 } 159 }
160 }, 160 },
161 161
162 handleMousewheel : 162 handleMousewheel :
163 { 163 {
164 value:function(event) 164 value:function(event)
165 { 165 {
166 var zoom = this.application.ninja.documentBar.zoomFactor/100.0; 166 var zoom = this.application.ninja.documentBar.zoomFactor/100.0;
167 if (!zoom) zoom = 1.0; 167 if (!zoom) zoom = 1.0;
168 168
169 var delta = 0; 169 var delta = 0;
170 if (event.wheelDelta) 170 if (event.wheelDelta)
171 delta = 10*event.wheelDelta/120; 171 delta = 10*event.wheelDelta/120;
172 //console.log( "delta: " + delta ); 172 //console.log( "delta: " + delta );
173 173
174 this.application.ninja.currentDocument.model.views.design.document.body.scrollLeft += delta; 174 this.application.ninja.currentDocument.model.views.design.document.body.scrollLeft += delta;
175 175
176 delta *= zoom; 176 delta *= zoom;
177 177
178 var uc = this.application.ninja.currentDocument.model.documentRoot; 178 var uc = this.application.ninja.currentDocument.model.documentRoot;
179 var ucMat = viewUtils.getMatrixFromElement(uc); 179 var ucMat = viewUtils.getMatrixFromElement(uc);
180 var offset = viewUtils.getElementOffset( uc ); 180 var offset = viewUtils.getElementOffset( uc );
181 //console.log( "uc offset: " + offset[0] ); 181 //console.log( "uc offset: " + offset[0] );
182 182
183 var localToGlobalMat = viewUtils.getLocalToGlobalMatrix( uc ); 183 var localToGlobalMat = viewUtils.getLocalToGlobalMatrix( uc );
184 var globalToLocalMat = glmat4.inverse( localToGlobalMat, []); 184 var globalToLocalMat = glmat4.inverse( localToGlobalMat, []);
185 185
186 var w = uc.offsetWidth, 186 var w = uc.offsetWidth,
187 h = uc.offsetHeight; 187 h = uc.offsetHeight;
188 if(uc.width) 188 if(uc.width)
189 w = uc.width; 189 w = uc.width;
190 if(uc.height) 190 if(uc.height)
191 h = uc.height; 191 h = uc.height;
192 var localPt = [ w/2, h/2, 0]; 192 var localPt = [ w/2, h/2, 0];
193 var globalPt = MathUtils.transformAndDivideHomogeneousPoint( localPt, localToGlobalMat ); 193 var globalPt = MathUtils.transformAndDivideHomogeneousPoint( localPt, localToGlobalMat );
194 this.doMouseDown( { x:globalPt[0], y:globalPt[1] } ); 194 this.doMouseDown( { x:globalPt[0], y:globalPt[1] } );
195 195
196 globalPt[0] += delta; 196 globalPt[0] += delta;
197 this._isDrawing = true; 197 this._isDrawing = true;
198 this.doMouseMove( { x:globalPt[0], y:globalPt[1] } ); 198 this.doMouseMove( { x:globalPt[0], y:globalPt[1] } );
199 this._isDrawing = false; 199 this._isDrawing = false;
200 } 200 }
201 }, 201 },
202 202
203 203
204 ///////////////////////////////////////////////////////////////////// 204 /////////////////////////////////////////////////////////////////////
205 // Simple tool API 205 // Simple tool API
206 activate: 206 activate:
207 { 207 {
208 value: function() 208 value: function()
209 { 209 {
210 //console.log( "PanTool.activate" ); 210 //console.log( "PanTool.activate" );
211 } 211 }
212 }, 212 },
213 213
214 deactivate: