diff options
Diffstat (limited to 'js/controllers/elements')
-rwxr-xr-x | js/controllers/elements/shapes-controller.js | 50 |
1 files changed, 41 insertions, 9 deletions
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js index e9a5f865..0d6defe2 100755 --- a/js/controllers/elements/shapes-controller.js +++ b/js/controllers/elements/shapes-controller.js | |||
@@ -142,7 +142,7 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
142 | if(m) | 142 | if(m) |
143 | { | 143 | { |
144 | el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(m); | 144 | el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(m); |
145 | color = this.getMaterialColor(value); | 145 | color = this.getMaterialColor(m); |
146 | if(color) | 146 | if(color) |
147 | { | 147 | { |
148 | el.elementModel.shapeModel.GLGeomObj.setStrokeColor(color); | 148 | el.elementModel.shapeModel.GLGeomObj.setStrokeColor(color); |
@@ -156,7 +156,7 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
156 | if(m) | 156 | if(m) |
157 | { | 157 | { |
158 | el.elementModel.shapeModel.GLGeomObj.setFillMaterial(m); | 158 | el.elementModel.shapeModel.GLGeomObj.setFillMaterial(m); |
159 | color = this.getMaterialColor(value); | 159 | color = this.getMaterialColor(m); |
160 | if(color) | 160 | if(color) |
161 | { | 161 | { |
162 | el.elementModel.shapeModel.GLGeomObj.setFillColor(color); | 162 | el.elementModel.shapeModel.GLGeomObj.setFillColor(color); |
@@ -166,10 +166,10 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
166 | } | 166 | } |
167 | break; | 167 | break; |
168 | case "editStrokeMaterial": | 168 | case "editStrokeMaterial": |
169 | NJevent("showMaterialPopup",{materialId : this.getProperty(el, "strokeMaterial")}); | 169 | NJevent("showMaterialPopup",{materialId : this.getProperty(el, "strokeMaterial"), useSelection: true, whichMaterial: 'stroke'}); |
170 | break; | 170 | break; |
171 | case "editFillMaterial": | 171 | case "editFillMaterial": |
172 | NJevent("showMaterialPopup",{materialId : this.getProperty(el, "fillMaterial")}); | 172 | NJevent("showMaterialPopup",{materialId : this.getProperty(el, "fillMaterial"), useSelection: true, whichMaterial: 'fill'}); |
173 | break; | 173 | break; |
174 | case "animate": | 174 | case "animate": |
175 | if(value) | 175 | if(value) |
@@ -750,14 +750,34 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
750 | value: function(m) | 750 | value: function(m) |
751 | { | 751 | { |
752 | var css, | 752 | var css, |
753 | colorObj; | 753 | colorObj, |
754 | if(m === "LinearGradientMaterial") | 754 | c, |
755 | mName = m.getName(); | ||
756 | if(mName === "LinearGradientMaterial") | ||
755 | { | 757 | { |
756 | css = "-webkit-gradient(linear, left top, right top, from(rgb(255, 0, 0)), color-stop(0.3, rgb(0, 255, 0)), color-stop(0.6, rgb(0, 0, 255)), to(rgb(0, 255, 255)))"; | 758 | css = "-webkit-gradient(linear, left top, right top, from("; |
759 | c = this.webGlColorToCss(m, 1); | ||
760 | css += c.rgb + ")"; | ||
761 | c = this.webGlColorToCss(m, 2); | ||
762 | css += ", color-stop(" + c.stop + ", " + c.rgb + ")"; | ||
763 | c = this.webGlColorToCss(m, 3); | ||
764 | css += ", color-stop(" + c.stop + ", " + c.rgb + ")"; | ||
765 | c = this.webGlColorToCss(m, 4); | ||
766 | css += ", to(" + c.rgb + "))"; | ||
767 | // console.log(css); | ||
757 | } | 768 | } |
758 | else if(m === "RadialGradientMaterial") | 769 | else if(mName === "RadialGradientMaterial") |
759 | { | 770 | { |
760 | css = "-webkit-radial-gradient(50% 50%, ellipse cover, rgb(255, 0, 0) 0%, rgb(0, 255, 0) 30%, rgb(0, 0, 255) 60%, rgb(0, 255, 255) 100%)"; | 771 | css = "-webkit-radial-gradient(50% 50%, ellipse cover, "; |
772 | c = this.webGlColorToCss(m, 1); | ||
773 | css += c.rgb + " " + c.stop*100 + "%"; | ||
774 | c = this.webGlColorToCss(m, 2); | ||
775 | css += c.rgb + " " + c.stop*100 + "%"; | ||
776 | c = this.webGlColorToCss(m, 3); | ||
777 | css += c.rgb + " " + c.stop*100 + "%"; | ||
778 | c = this.webGlColorToCss(m, 4); | ||
779 | css += c.rgb + " " + c.stop*100 + "%)"; | ||
780 | // console.log(css); | ||
761 | } | 781 | } |
762 | 782 | ||
763 | if(css) | 783 | if(css) |
@@ -771,6 +791,18 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
771 | 791 | ||
772 | return null; | 792 | return null; |
773 | } | 793 | } |
794 | }, | ||
795 | |||
796 | webGlColorToCss: { | ||
797 | value: function(m, index) | ||
798 | { | ||
799 | var color, rgba, cStop; | ||
800 | color = m["getColor" + index](); | ||
801 | rgba = 'rgba(' + color[0]*255 + ',' + color[1]*255 + ',' + color[2]*255 + ',' + color[3] + ')'; | ||
802 | cStop = m["getColorStop" + index](); | ||
803 | |||
804 | return {rgb:rgba, stop: cStop}; | ||
805 | } | ||
774 | } | 806 | } |
775 | 807 | ||
776 | }); | 808 | }); |