aboutsummaryrefslogtreecommitdiff
path: root/js/stage/stage.reel
diff options
context:
space:
mode:
authorNivesh Rajbhandari2012-04-16 16:06:24 -0700
committerNivesh Rajbhandari2012-04-16 16:06:24 -0700
commitc253192a08b499ea7be46fa5438d273e51f7ec5a (patch)
tree18a1f0e3679c0eb993a9dedb537035d3861f49ac /js/stage/stage.reel
parente19376c54eedd1f1c457ba405b2f110be376a559 (diff)
parent4b900ea5cd6bb77eb30cec8c03b9ec9fa662c1e9 (diff)
downloadninja-c253192a08b499ea7be46fa5438d273e51f7ec5a.tar.gz
Merge branch 'refs/heads/ninja-internal' into WebGLFixes
Diffstat (limited to 'js/stage/stage.reel')
-rwxr-xr-xjs/stage/stage.reel/stage.html7
-rwxr-xr-xjs/stage/stage.reel/stage.js51
2 files changed, 52 insertions, 6 deletions
diff --git a/js/stage/stage.reel/stage.html b/js/stage/stage.reel/stage.html
index 812e3d55..f796303c 100755
--- a/js/stage/stage.reel/stage.html
+++ b/js/stage/stage.reel/stage.html
@@ -50,6 +50,10 @@
50 "element" : {"#": "textToolObject"} 50 "element" : {"#": "textToolObject"}
51 } 51 }
52 }, 52 },
53
54 "focusManager": {
55 "object": "js/components/focus-manager.reel"
56 },
53 57
54 "owner": { 58 "owner": {
55 "module": "js/stage/stage.reel", 59 "module": "js/stage/stage.reel",
@@ -63,7 +67,8 @@
63 "stageDeps": {"@": "StageDeps1"}, 67 "stageDeps": {"@": "StageDeps1"},
64 "layout": {"@": "layout1"}, 68 "layout": {"@": "layout1"},
65 "stageView": {"@": "stageView"}, 69 "stageView": {"@": "stageView"},
66 "textTool": {"@": "textTool"} 70 "textTool": {"@": "textTool"},
71 "focusManager": {"@": "focusManager"}
67 }, 72 },
68 "bindings": { 73 "bindings": {
69 "currentDocumentStageView": { 74 "currentDocumentStageView": {
diff --git a/js/stage/stage.reel/stage.js b/js/stage/stage.reel/stage.js
index 4c1d046b..ec8c0e55 100755
--- a/js/stage/stage.reel/stage.js
+++ b/js/stage/stage.reel/stage.js
@@ -170,8 +170,7 @@ exports.Stage = Montage.create(Component, {
170 170
171 // Hack for now until a full component 171 // Hack for now until a full component
172 this.layout.draw(); 172 this.layout.draw();
173 } 173 } else if(this.updatedStage) {
174 else if(this.updatedStage) {
175 this.layout.draw(); 174 this.layout.draw();
176 this.layout.draw3DInfo(true); 175 this.layout.draw3DInfo(true);
177 } 176 }
@@ -235,6 +234,10 @@ exports.Stage = Montage.create(Component, {
235 234
236 this.hideCanvas(false); 235 this.hideCanvas(false);
237 236
237 // Recalculate the canvas sizes because of splitter resizing
238 this._canvas.width = this._layoutCanvas.width = this._drawingCanvas.width = this.element.offsetWidth - 11 ;
239 this._canvas.height = this._layoutCanvas.height = this._drawingCanvas.height = this.element.offsetHeight - 11;
240
238 this._documentRoot = this.application.ninja.currentDocument.documentRoot; 241 this._documentRoot = this.application.ninja.currentDocument.documentRoot;
239 this._viewport = this.application.ninja.currentDocument.documentRoot.parentNode; 242 this._viewport = this.application.ninja.currentDocument.documentRoot.parentNode;
240 243
@@ -319,6 +322,10 @@ exports.Stage = Montage.create(Component, {
319 322
320 handleMousedown: { 323 handleMousedown: {
321 value: function(event) { 324 value: function(event) {
325 // Call the focus manager to set focus to blur any focus'd elements
326 this.focusManager.setFocus();
327
328
322 var point; 329 var point;
323// event.preventDefault(); // commenting because HTML elements in the IDE are retaining focus 330// event.preventDefault(); // commenting because HTML elements in the IDE are retaining focus
324 // If right click set the context menu to true to prevent a mouse up. 331 // If right click set the context menu to true to prevent a mouse up.
@@ -512,6 +519,36 @@ exports.Stage = Montage.create(Component, {
512 }, 519 },
513 520
514 /** 521 /**
522 * GetSelectableElement: Returns a selectable object (direct child of current container) at clicked point
523 *
524 * @param: X,Y
525 * @return: Returns the current container if the the X,Y hits an element in the exclusion list
526 */
527 GetSelectableElement: {
528 value: function(pos) {
529 var item = this.GetElement(pos);
530 if(this.application.ninja.currentDocument.inExclusion(item) !== -1) {
531 return this.application.ninja.currentSelectedContainer;
532 }
533 var activeContainerId = this.application.ninja.currentSelectedContainer.uuid;
534 if(item.parentNode.uuid === activeContainerId) {
535 return item;
536 } else {
537 var outerElement = item.parentNode;
538
539 while(outerElement.parentNode && outerElement.parentNode.uuid !== activeContainerId) {
540 // If element is higher up than current container then return
541 if(outerElement.id === "UserContent") return;
542 // else keep going up the chain
543 outerElement = outerElement.parentNode;
544 }
545
546 return outerElement;
547 }
548 }
549 },
550
551 /**
515 * GetElement: Returns the object under the X,Y coordinates passed as an obj with x,y 552 * GetElement: Returns the object under the X,Y coordinates passed as an obj with x,y
516 * 553 *
517 * @param: X,Y 554 * @param: X,Y
@@ -523,8 +560,7 @@ exports.Stage = Montage.create(Component, {
523 elt = this.application.ninja.currentDocument.GetElementFromPoint(point.x + this.scrollLeft,point.y + this.scrollTop); 560 elt = this.application.ninja.currentDocument.GetElementFromPoint(point.x + this.scrollLeft,point.y + this.scrollTop);
524 561
525 // workaround Chrome 3d bug 562 // workaround Chrome 3d bug
526 if(this.application.ninja.toolsData.selectedToolInstance._canSnap && this.application.ninja.currentDocument.inExclusion(elt) !== -1) 563 if(this.application.ninja.toolsData.selectedToolInstance._canSnap && this.application.ninja.currentDocument.inExclusion(elt) !== -1) {
527 {
528 return this._getElementUsingSnapping(point); 564 return this._getElementUsingSnapping(point);
529 } else { 565 } else {
530 return elt; 566 return elt;
@@ -568,7 +604,7 @@ exports.Stage = Montage.create(Component, {
568 var selArray = new Array(); 604 var selArray = new Array();
569 605
570 for(var i = 0; this.application.ninja.selectedElements[i];i++) { 606 for(var i = 0; this.application.ninja.selectedElements[i];i++) {
571 var curElement = this.application.ninja.selectedElements[i]._element; 607 var curElement = this.application.ninja.selectedElements[i];
572 608
573 // Add element to array that is used to calculate 3d-bounding box of all elements 609 // Add element to array that is used to calculate 3d-bounding box of all elements
574 selArray.push( curElement ); 610 selArray.push( curElement );
@@ -759,6 +795,8 @@ exports.Stage = Montage.create(Component, {
759 drawLine: { 795 drawLine: {
760 value:function(x0, y0, x1, y1, strokeSize, strokeColor) { 796 value:function(x0, y0, x1, y1, strokeSize, strokeColor) {
761 this.clearDrawingCanvas(); 797 this.clearDrawingCanvas();
798 var origStrokeStyle = this._drawingContext.strokeStyle;
799 var origLineWidth = this._drawingContext.lineWidth;
762 this._drawingContext.strokeStyle = strokeColor; 800 this._drawingContext.strokeStyle = strokeColor;
763 this._drawingContext.lineWidth = strokeSize; 801 this._drawingContext.lineWidth = strokeSize;
764 802
@@ -789,6 +827,9 @@ exports.Stage = Montage.create(Component, {
789 var w = Math.round(Math.abs(x1-x0)); 827 var w = Math.round(Math.abs(x1-x0));
790 this._drawingContext.fillText("H: " + h, txtX + 38, txtY - 4); 828 this._drawingContext.fillText("H: " + h, txtX + 38, txtY - 4);
791 this._drawingContext.fillText("W: " + w, txtX - 5, txtY + 12); 829 this._drawingContext.fillText("W: " + w, txtX - 5, txtY + 12);
830
831 this._drawingContext.strokeStyle = origStrokeStyle;
832 this._drawingContext.lineWidth = origLineWidth;
792 } 833 }
793 }, 834 },
794 835