aboutsummaryrefslogtreecommitdiff
path: root/js/controllers/elements
diff options
context:
space:
mode:
authorArmen Kesablyan2012-07-02 13:20:43 -0700
committerArmen Kesablyan2012-07-02 13:20:43 -0700
commit5a6b1fcf207817a7aa0ba7d0c1bea90f0ee5e8cb (patch)
treeaf71b72b828d942ebf11f565b7c9ccff0798343d /js/controllers/elements
parent8966fc4903f0eec61816d9b9bdbcac9b7d99c320 (diff)
parent526b9d76686323f488f1b26175440172b715d808 (diff)
downloadninja-5a6b1fcf207817a7aa0ba7d0c1bea90f0ee5e8cb.tar.gz
Merge branch 'refs/heads/master' into GIO-TextTool
Diffstat (limited to 'js/controllers/elements')
-rwxr-xr-xjs/controllers/elements/body-controller.js5
-rwxr-xr-xjs/controllers/elements/shapes-controller.js119
2 files changed, 87 insertions, 37 deletions
diff --git a/js/controllers/elements/body-controller.js b/js/controllers/elements/body-controller.js
index 604b22d0..bc4d2e42 100755
--- a/js/controllers/elements/body-controller.js
+++ b/js/controllers/elements/body-controller.js
@@ -39,6 +39,8 @@ exports.BodyController = Montage.create(ElementController, {
39 value: function(el, p) { 39 value: function(el, p) {
40 switch(p) { 40 switch(p) {
41 case "background" : 41 case "background" :
42 case "background-image":
43 return this.application.ninja.colorController.getColorObjFromCss(this.application.ninja.stylesController.getElementStyle(el, "background-image"));
42 case "background-color": 44 case "background-color":
43 if(this.application.ninja.currentDocument.model.views.design._template) { 45 if(this.application.ninja.currentDocument.model.views.design._template) {
44 return this.application.ninja.colorController.getColorObjFromCss(this.application.ninja.stylesController.getElementStyle(el.parentNode, "background-color")); 46 return this.application.ninja.colorController.getColorObjFromCss(this.application.ninja.stylesController.getElementStyle(el.parentNode, "background-color"));
@@ -62,6 +64,9 @@ exports.BodyController = Montage.create(ElementController, {
62 value: function(el, p, value) { 64 value: function(el, p, value) {
63 switch(p) { 65 switch(p) {
64 case "background": 66 case "background":
67 case "background-image":
68 this.application.ninja.stylesController.setElementStyle(el, "background-image", value);
69 break;
65 case "background-color": 70 case "background-color":
66 if(this.application.ninja.currentDocument.model.views.design._template) { 71 if(this.application.ninja.currentDocument.model.views.design._template) {
67 this.application.ninja.stylesController.setElementStyle(el.parentNode, "background-color", value); 72 this.application.ninja.stylesController.setElementStyle(el.parentNode, "background-color", value);
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js
index e62af921..c3099459 100755
--- a/js/controllers/elements/shapes-controller.js
+++ b/js/controllers/elements/shapes-controller.js
@@ -138,6 +138,10 @@ exports.ShapesController = Montage.create(CanvasController, {
138 this.application.ninja.elementMediator.replaceElement(canvas, el); 138 this.application.ninja.elementMediator.replaceElement(canvas, el);
139 break; 139 break;
140 case "strokeMaterial": 140 case "strokeMaterial":
141 // skip shape types that don't support WebGL
142 if(!el.elementModel.shapeModel.useWebGl) {
143 return;
144 }
141 m = Object.create(MaterialsModel.getMaterial(value)); 145 m = Object.create(MaterialsModel.getMaterial(value));
142 if(m) 146 if(m)
143 { 147 {
@@ -152,6 +156,10 @@ exports.ShapesController = Montage.create(CanvasController, {
152 } 156 }
153 break; 157 break;
154 case "fillMaterial": 158 case "fillMaterial":
159 // skip shape types that don't support WebGL or fill color
160 if(!el.elementModel.shapeModel.GLGeomObj.canFill || !el.elementModel.shapeModel.useWebGl) {
161 return;
162 }
155 m = Object.create(MaterialsModel.getMaterial(value)); 163 m = Object.create(MaterialsModel.getMaterial(value));
156 if(m) 164 if(m)
157 { 165 {
@@ -278,7 +286,7 @@ exports.ShapesController = Montage.create(CanvasController, {
278 } 286 }
279 else 287 else
280 { 288 {
281 return "FlatMaterial"; 289 return "Flat";
282 } 290 }
283 case "fillMaterial": 291 case "fillMaterial":
284 var fm = el.elementModel.shapeModel.GLGeomObj.getFillMaterial(); 292 var fm = el.elementModel.shapeModel.GLGeomObj.getFillMaterial();
@@ -288,7 +296,7 @@ exports.ShapesController = Montage.create(CanvasController, {
288 } 296 }
289 else 297 else
290 { 298 {
291 return "FlatMaterial"; 299 return "Flat";
292 } 300 }
293 default: 301 default:
294 return CanvasController.getProperty(el, p); 302 return CanvasController.getProperty(el, p);
@@ -430,32 +438,32 @@ exports.ShapesController = Montage.create(CanvasController, {
430 438
431 if(gradientMode === "radial") 439 if(gradientMode === "radial")
432 { 440 {
433 if( !m || (m.getName() !== "RadialGradientMaterial") ) 441 if( !m || (m.getName() !== "Radial Gradient") )
434 { 442 {
435 gradientM = Object.create(MaterialsModel.getMaterial("RadialGradientMaterial")); 443 gradientM = Object.create(MaterialsModel.getMaterial("Radial Gradient"));
436 } 444 }
437 } 445 }
438 else 446 else
439 { 447 {
440 if( !m || (m.getName() !== "LinearGradientMaterial") ) 448 if( !m || (m.getName() !== "Linear Gradient") )
441 { 449 {
442 gradientM = Object.create(MaterialsModel.getMaterial("LinearGradientMaterial")); 450 gradientM = Object.create(MaterialsModel.getMaterial("Linear Gradient"));
443 } 451 }
444 } 452 }
445 453
446 if(gradientM) 454 if(gradientM)
447 { 455 {
448 if(isFill) 456 if(isFill)
449 { 457 {
450 el.elementModel.shapeModel.GLGeomObj.setFillMaterial(gradientM); 458 el.elementModel.shapeModel.GLGeomObj.setFillMaterial(gradientM);
451 } 459 }
452 else 460 else
453 { 461 {
454 el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(gradientM); 462 el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(gradientM);
455 } 463 }
456 el.elementModel.shapeModel.GLGeomObj.buildBuffers(); 464 el.elementModel.shapeModel.GLGeomObj.buildBuffers();
457 } 465 }
458 } 466 }
459 }, 467 },
460 468
461 _setFlatMaterial: { 469 _setFlatMaterial: {
@@ -471,11 +479,14 @@ exports.ShapesController = Montage.create(CanvasController, {
471 m = el.elementModel.shapeModel.GLGeomObj.getStrokeMaterial(); 479 m = el.elementModel.shapeModel.GLGeomObj.getStrokeMaterial();
472 } 480 }
473 481
474 if(!m || ((m.getName() === "LinearGradientMaterial") || m.getName() === "RadialGradientMaterial") ) 482 if(!m || ((m.getName() === "Linear Gradient") || m.getName() === "Radial Gradient") )
475 { 483 {
476 flatM = Object.create(MaterialsModel.getMaterial("FlatMaterial")); 484 // Uber Material also supports solid colors, so don't change from Uber to Flat Material
485 if(m && (m.getName() === "Uber")) { return; }
486
487 flatM = Object.create(MaterialsModel.getMaterial("Flat"));
477 if(flatM) 488 if(flatM)
478 { 489 {
479 if(isFill) 490 if(isFill)
480 { 491 {
481 el.elementModel.shapeModel.GLGeomObj.setFillMaterial(flatM); 492 el.elementModel.shapeModel.GLGeomObj.setFillMaterial(flatM);
@@ -484,10 +495,10 @@ exports.ShapesController = Montage.create(CanvasController, {
484 { 495 {
485 el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(flatM); 496 el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(flatM);
486 } 497 }
487 el.elementModel.shapeModel.GLGeomObj.buildBuffers(); 498 el.elementModel.shapeModel.GLGeomObj.buildBuffers();
488 }
489 } 499 }
490 } 500 }
501 }
491 }, 502 },
492 503
493 setColor: { 504 setColor: {
@@ -597,14 +608,31 @@ exports.ShapesController = Montage.create(CanvasController, {
597 608
598 setStroke: { 609 setStroke: {
599 value: function(el, stroke, eventType, source) { 610 value: function(el, stroke, eventType, source) {
600 if(stroke.colorInfo) {
601 this.setColor(el, stroke.colorInfo, false);
602 }
603 if(stroke.shapeInfo) { 611 if(stroke.shapeInfo) {
604 this.setProperty(el, "strokeSize", stroke.shapeInfo.strokeSize + " " + stroke.shapeInfo.strokeUnits, eventType, source); 612 this.setProperty(el, "strokeSize", stroke.shapeInfo.strokeSize + " " + stroke.shapeInfo.strokeUnits, eventType, source);
605 } 613 }
614 var m;
606 if(stroke.webGLInfo) { 615 if(stroke.webGLInfo) {
607 this.setProperty(el, "strokeMaterial", stroke.webGLInfo.material); 616 m = stroke.webGLInfo.material;
617 this.setProperty(el, "strokeMaterial", m);
618 if((m === "Linear Gradient") || (m === "Radial Gradient")) {
619 // Just use the default gradient material values
620 return;
621 }
622 }
623 if(stroke.colorInfo) {
624 if(el.elementModel.shapeModel.useWebGl) {
625 m = el.elementModel.shapeModel.GLGeomObj.getStrokeMaterial().getName();
626 if( ((stroke.colorInfo.mode === "gradient") && (m !== "Linear Gradient") && (m !== "Radial Gradient")) ||
627 ((stroke.colorInfo.mode !== "gradient") && ((m === "Linear Gradient") || (m === "Radial Gradient"))))
628 {
629 return;
630 } else {
631 this.setColor(el, stroke.colorInfo, false);
632 }
633 } else {
634 this.setColor(el, stroke.colorInfo, false);
635 }
608 } 636 }
609 } 637 }
610 }, 638 },
@@ -638,11 +666,28 @@ exports.ShapesController = Montage.create(CanvasController, {
638 666
639 setFill: {