blob: 99277474a0321a5fea66b17bab3c07679db8dbc3 [file] [log] [blame]
/*
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if(!dojo._hasResource["dojox.gfx.fx"]){dojo._hasResource["dojox.gfx.fx"]=true;dojo.provide("dojox.gfx.fx");dojo.require("dojox.gfx.matrix");(function(){var d=dojo,g=dojox.gfx,m=g.matrix;var _1=function(_2,_3){this.start=_2,this.end=_3;};d.extend(_1,{getValue:function(r){return (this.end-this.start)*r+this.start;}});var _4=function(_5,_6,_7){this.start=_5,this.end=_6;this.units=_7;};d.extend(_4,{getValue:function(r){return (this.end-this.start)*r+this.start+this.units;}});var _8=function(_9,_a){this.start=_9,this.end=_a;this.temp=new dojo.Color();};d.extend(_8,{getValue:function(r){return d.blendColors(this.start,this.end,r,this.temp);}});var _b=function(_c){this.values=_c;this.length=_c.length;};d.extend(_b,{getValue:function(r){return this.values[Math.min(Math.floor(r*this.length),this.length-1)];}});var _d=function(_e,_f){this.values=_e;this.def=_f?_f:{};};d.extend(_d,{getValue:function(r){var ret=dojo.clone(this.def);for(var i in this.values){ret[i]=this.values[i].getValue(r);}return ret;}});var _10=function(_11,_12){this.stack=_11;this.original=_12;};d.extend(_10,{getValue:function(r){var ret=[];dojo.forEach(this.stack,function(t){if(t instanceof m.Matrix2D){ret.push(t);return;}if(t.name=="original"&&this.original){ret.push(this.original);return;}if(!(t.name in m)){return;}var f=m[t.name];if(typeof f!="function"){ret.push(f);return;}var val=dojo.map(t.start,function(v,i){return (t.end[i]-v)*r+v;}),_13=f.apply(m,val);if(_13 instanceof m.Matrix2D){ret.push(_13);}},this);return ret;}});var _14=new d.Color(0,0,0,0);var _15=function(_16,obj,_17,def){if(_16.values){return new _b(_16.values);}var _18,_19,end;if(_16.start){_19=g.normalizeColor(_16.start);}else{_19=_18=obj?(_17?obj[_17]:obj):def;}if(_16.end){end=g.normalizeColor(_16.end);}else{if(!_18){_18=obj?(_17?obj[_17]:obj):def;}end=_18;}return new _8(_19,end);};var _1a=function(_1b,obj,_1c,def){if(_1b.values){return new _b(_1b.values);}var _1d,_1e,end;if(_1b.start){_1e=_1b.start;}else{_1e=_1d=obj?obj[_1c]:def;}if(_1b.end){end=_1b.end;}else{if(typeof _1d!="number"){_1d=obj?obj[_1c]:def;}end=_1d;}return new _1(_1e,end);};g.fx.animateStroke=function(_1f){if(!_1f.easing){_1f.easing=d._defaultEasing;}var _20=new d.Animation(_1f),_21=_1f.shape,_22;d.connect(_20,"beforeBegin",_20,function(){_22=_21.getStroke();var _23=_1f.color,_24={},_25,_26,end;if(_23){_24.color=_15(_23,_22,"color",_14);}_23=_1f.style;if(_23&&_23.values){_24.style=new _b(_23.values);}_23=_1f.width;if(_23){_24.width=_1a(_23,_22,"width",1);}_23=_1f.cap;if(_23&&_23.values){_24.cap=new _b(_23.values);}_23=_1f.join;if(_23){if(_23.values){_24.join=new _b(_23.values);}else{_26=_23.start?_23.start:(_22&&_22.join||0);end=_23.end?_23.end:(_22&&_22.join||0);if(typeof _26=="number"&&typeof end=="number"){_24.join=new _1(_26,end);}}}this.curve=new _d(_24,_22);});d.connect(_20,"onAnimate",_21,"setStroke");return _20;};g.fx.animateFill=function(_27){if(!_27.easing){_27.easing=d._defaultEasing;}var _28=new d.Animation(_27),_29=_27.shape,_2a;d.connect(_28,"beforeBegin",_28,function(){_2a=_29.getFill();var _2b=_27.color,_2c={};if(_2b){this.curve=_15(_2b,_2a,"",_14);}});d.connect(_28,"onAnimate",_29,"setFill");return _28;};g.fx.animateFont=function(_2d){if(!_2d.easing){_2d.easing=d._defaultEasing;}var _2e=new d.Animation(_2d),_2f=_2d.shape,_30;d.connect(_2e,"beforeBegin",_2e,function(){_30=_2f.getFont();var _31=_2d.style,_32={},_33,_34,end;if(_31&&_31.values){_32.style=new _b(_31.values);}_31=_2d.variant;if(_31&&_31.values){_32.variant=new _b(_31.values);}_31=_2d.weight;if(_31&&_31.values){_32.weight=new _b(_31.values);}_31=_2d.family;if(_31&&_31.values){_32.family=new _b(_31.values);}_31=_2d.size;if(_31&&_31.units){_34=parseFloat(_31.start?_31.start:(_2f.font&&_2f.font.size||"0"));end=parseFloat(_31.end?_31.end:(_2f.font&&_2f.font.size||"0"));_32.size=new _4(_34,end,_31.units);}this.curve=new _d(_32,_30);});d.connect(_2e,"onAnimate",_2f,"setFont");return _2e;};g.fx.animateTransform=function(_35){if(!_35.easing){_35.easing=d._defaultEasing;}var _36=new d.Animation(_35),_37=_35.shape,_38;d.connect(_36,"beforeBegin",_36,function(){_38=_37.getTransform();this.curve=new _10(_35.transform,_38);});d.connect(_36,"onAnimate",_37,"setTransform");return _36;};})();}