root / trunk / web / dojo / dojox / gfx / silverlight.js
History | View | Annotate | Download (15.3 KB)
1 | 9 | andrej.cim | /*
|
---|---|---|---|
2 | Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
||
3 | Available via Academic Free License >= 2.1 OR the modified BSD license.
|
||
4 | see: http://dojotoolkit.org/license for details
|
||
5 | */
|
||
6 | |||
7 | |||
8 | if(!dojo._hasResource["dojox.gfx.silverlight"]){ |
||
9 | dojo._hasResource["dojox.gfx.silverlight"]=true; |
||
10 | dojo.provide("dojox.gfx.silverlight");
|
||
11 | dojo.require("dojox.gfx._base");
|
||
12 | dojo.require("dojox.gfx.shape");
|
||
13 | dojo.require("dojox.gfx.path");
|
||
14 | dojo.experimental("dojox.gfx.silverlight");
|
||
15 | dojox.gfx.silverlight.dasharray={solid:"none",shortdash:[4,1],shortdot:[1,1],shortdashdot:[4,1,1,1],shortdashdotdot:[4,1,1,1,1,1],dot:[1,3],dash:[4,3],longdash:[8,3],dashdot:[4,3,1,3],longdashdot:[8,3,1,3],longdashdotdot:[8,3,1,3,1,3]}; |
||
16 | dojox.gfx.silverlight.fontweight={normal:400,bold:700}; |
||
17 | dojox.gfx.silverlight.caps={butt:"Flat",round:"Round",square:"Square"}; |
||
18 | dojox.gfx.silverlight.joins={bevel:"Bevel",round:"Round"}; |
||
19 | dojox.gfx.silverlight.fonts={serif:"Times New Roman",times:"Times New Roman","sans-serif":"Arial",helvetica:"Arial",monotone:"Courier New",courier:"Courier New"}; |
||
20 | dojox.gfx.silverlight.hexColor=function(_1){ |
||
21 | var c=dojox.gfx.normalizeColor(_1),t=c.toHex(),a=Math.round(c.a*255); |
||
22 | a=(a<0?0:a>255?255:a).toString(16); |
||
23 | return "#"+(a.length<2?"0"+a:a)+t.slice(1); |
||
24 | }; |
||
25 | dojo.extend(dojox.gfx.Shape,{setFill:function(_2){ |
||
26 | var p=this.rawNode.getHost().content,r=this.rawNode,f; |
||
27 | if(!_2){
|
||
28 | this.fillStyle=null; |
||
29 | this._setFillAttr(null); |
||
30 | return this; |
||
31 | } |
||
32 | if(typeof (_2)=="object"&&"type" in _2){ |
||
33 | switch(_2.type){
|
||
34 | case "linear": |
||
35 | this.fillStyle=f=dojox.gfx.makeParameters(dojox.gfx.defaultLinearGradient,_2);
|
||
36 | var _3=p.createFromXaml("<LinearGradientBrush/>"); |
||
37 | _3.mappingMode="Absolute";
|
||
38 | _3.startPoint=f.x1+","+f.y1;
|
||
39 | _3.endPoint=f.x2+","+f.y2;
|
||
40 | dojo.forEach(f.colors,function(c){
|
||
41 | var t=p.createFromXaml("<GradientStop/>"); |
||
42 | t.offset=c.offset; |
||
43 | t.color=dojox.gfx.silverlight.hexColor(c.color); |
||
44 | _3.gradientStops.add(t); |
||
45 | }); |
||
46 | this._setFillAttr(_3);
|
||
47 | break;
|
||
48 | case "radial": |
||
49 | this.fillStyle=f=dojox.gfx.makeParameters(dojox.gfx.defaultRadialGradient,_2);
|
||
50 | var _4=p.createFromXaml("<RadialGradientBrush/>"),c=dojox.gfx.matrix.multiplyPoint(dojox.gfx.matrix.invert(this._getAdjustedMatrix()),f.cx,f.cy),pt=c.x+","+c.y; |
||
51 | _4.mappingMode="Absolute";
|
||
52 | _4.gradientOrigin=pt; |
||
53 | _4.center=pt; |
||
54 | _4.radiusX=_4.radiusY=f.r; |
||
55 | dojo.forEach(f.colors,function(c){
|
||
56 | var t=p.createFromXaml("<GradientStop/>"); |
||
57 | t.offset=c.offset; |
||
58 | t.color=dojox.gfx.silverlight.hexColor(c.color); |
||
59 | _4.gradientStops.add(t); |
||
60 | }); |
||
61 | this._setFillAttr(_4);
|
||
62 | break;
|
||
63 | case "pattern": |
||
64 | this.fillStyle=null; |
||
65 | this._setFillAttr(null); |
||
66 | break;
|
||
67 | } |
||
68 | return this; |
||
69 | } |
||
70 | this.fillStyle=f=dojox.gfx.normalizeColor(_2);
|
||
71 | var _5=p.createFromXaml("<SolidColorBrush/>"); |
||
72 | _5.color=f.toHex(); |
||
73 | _5.opacity=f.a; |
||
74 | this._setFillAttr(_5);
|
||
75 | return this; |
||
76 | },_setFillAttr:function(f){ |
||
77 | this.rawNode.fill=f;
|
||
78 | },setStroke:function(_6){ |
||
79 | var p=this.rawNode.getHost().content,r=this.rawNode; |
||
80 | if(!_6){
|
||
81 | this.strokeStyle=null; |
||
82 | r.stroke=null;
|
||
83 | return this; |
||
84 | } |
||
85 | if(typeof _6=="string"||dojo.isArray(_6)||_6 instanceof dojo.Color){ |
||
86 | _6={color:_6};
|
||
87 | } |
||
88 | var s=this.strokeStyle=dojox.gfx.makeParameters(dojox.gfx.defaultStroke,_6); |
||
89 | s.color=dojox.gfx.normalizeColor(s.color); |
||
90 | if(s){
|
||
91 | var _7=p.createFromXaml("<SolidColorBrush/>"); |
||
92 | _7.color=s.color.toHex(); |
||
93 | _7.opacity=s.color.a; |
||
94 | r.stroke=_7; |
||
95 | r.strokeThickness=s.width; |
||
96 | r.strokeStartLineCap=r.strokeEndLineCap=r.strokeDashCap=dojox.gfx.silverlight.caps[s.cap]; |
||
97 | if(typeof s.join=="number"){ |
||
98 | r.strokeLineJoin="Miter";
|
||
99 | r.strokeMiterLimit=s.join; |
||
100 | }else{
|
||
101 | r.strokeLineJoin=dojox.gfx.silverlight.joins[s.join]; |
||
102 | } |
||
103 | var da=s.style.toLowerCase();
|
||
104 | if(da in dojox.gfx.silverlight.dasharray){ |
||
105 | da=dojox.gfx.silverlight.dasharray[da]; |
||
106 | } |
||
107 | if(da instanceof Array){ |
||
108 | da=dojo.clone(da); |
||
109 | var i;
|
||
110 | if(s.cap!="butt"){ |
||
111 | for(i=0;i<da.length;i+=2){ |
||
112 | --da[i]; |
||
113 | if(da[i]<1){ |
||
114 | da[i]=1;
|
||
115 | } |
||
116 | } |
||
117 | for(i=1;i<da.length;i+=2){ |
||
118 | ++da[i]; |
||
119 | } |
||
120 | } |
||
121 | r.strokeDashArray=da.join(",");
|
||
122 | }else{
|
||
123 | r.strokeDashArray=null;
|
||
124 | } |
||
125 | } |
||
126 | return this; |
||
127 | },_getParentSurface:function(){ |
||
128 | var _8=this.parent; |
||
129 | for(;_8&&!(_8 instanceof dojox.gfx.Surface);_8=_8.parent){ |
||
130 | } |
||
131 | return _8;
|
||
132 | },_applyTransform:function(){ |
||
133 | var tm=this._getAdjustedMatrix(),r=this.rawNode; |
||
134 | if(tm){
|
||
135 | var p=this.rawNode.getHost().content,m=p.createFromXaml("<MatrixTransform/>"),mm=p.createFromXaml("<Matrix/>"); |
||
136 | mm.m11=tm.xx; |
||
137 | mm.m21=tm.xy; |
||
138 | mm.m12=tm.yx; |
||
139 | mm.m22=tm.yy; |
||
140 | mm.offsetX=tm.dx; |
||
141 | mm.offsetY=tm.dy; |
||
142 | m.matrix=mm; |
||
143 | r.renderTransform=m; |
||
144 | }else{
|
||
145 | r.renderTransform=null;
|
||
146 | } |
||
147 | return this; |
||
148 | },setRawNode:function(_9){ |
||
149 | _9.fill=null;
|
||
150 | _9.stroke=null;
|
||
151 | this.rawNode=_9;
|
||
152 | },_moveToFront:function(){ |
||
153 | var c=this.parent.rawNode.children,r=this.rawNode; |
||
154 | c.remove(r); |
||
155 | c.add(r); |
||
156 | return this; |
||
157 | },_moveToBack:function(){ |
||
158 | var c=this.parent.rawNode.children,r=this.rawNode; |
||
159 | c.remove(r); |
||
160 | c.insert(0,r);
|
||
161 | return this; |
||
162 | },_getAdjustedMatrix:function(){ |
||
163 | return this.matrix; |
||
164 | }}); |
||
165 | dojo.declare("dojox.gfx.Group",dojox.gfx.Shape,{constructor:function(){ |
||
166 | dojox.gfx.silverlight.Container._init.call(this);
|
||
167 | },setRawNode:function(_a){ |
||
168 | this.rawNode=_a;
|
||
169 | }}); |
||
170 | dojox.gfx.Group.nodeType="Canvas";
|
||
171 | dojo.declare("dojox.gfx.Rect",dojox.gfx.shape.Rect,{setShape:function(_b){ |
||
172 | this.shape=dojox.gfx.makeParameters(this.shape,_b); |
||
173 | this.bbox=null; |
||
174 | var r=this.rawNode,n=this.shape; |
||
175 | r.width=n.width; |
||
176 | r.height=n.height; |
||
177 | r.radiusX=r.radiusY=n.r; |
||
178 | return this._applyTransform(); |
||
179 | },_getAdjustedMatrix:function(){ |
||
180 | var m=this.matrix,s=this.shape,d={dx:s.x,dy:s.y}; |
||
181 | return new dojox.gfx.Matrix2D(m?[m,d]:d); |
||
182 | }}); |
||
183 | dojox.gfx.Rect.nodeType="Rectangle";
|
||
184 | dojo.declare("dojox.gfx.Ellipse",dojox.gfx.shape.Ellipse,{setShape:function(_c){ |
||
185 | this.shape=dojox.gfx.makeParameters(this.shape,_c); |
||
186 | this.bbox=null; |
||
187 | var r=this.rawNode,n=this.shape; |
||
188 | r.width=2*n.rx;
|
||
189 | r.height=2*n.ry;
|
||
190 | return this._applyTransform(); |
||
191 | },_getAdjustedMatrix:function(){ |
||
192 | var m=this.matrix,s=this.shape,d={dx:s.cx-s.rx,dy:s.cy-s.ry}; |
||
193 | return new dojox.gfx.Matrix2D(m?[m,d]:d); |
||
194 | }}); |
||
195 | dojox.gfx.Ellipse.nodeType="Ellipse";
|
||
196 | dojo.declare("dojox.gfx.Circle",dojox.gfx.shape.Circle,{setShape:function(_d){ |
||
197 | this.shape=dojox.gfx.makeParameters(this.shape,_d); |
||
198 | this.bbox=null; |
||
199 | var r=this.rawNode,n=this.shape; |
||
200 | r.width=r.height=2*n.r;
|
||
201 | return this._applyTransform(); |
||
202 | },_getAdjustedMatrix:function(){ |
||
203 | var m=this.matrix,s=this.shape,d={dx:s.cx-s.r,dy:s.cy-s.r}; |
||
204 | return new dojox.gfx.Matrix2D(m?[m,d]:d); |
||
205 | }}); |
||
206 | dojox.gfx.Circle.nodeType="Ellipse";
|
||
207 | dojo.declare("dojox.gfx.Line",dojox.gfx.shape.Line,{setShape:function(_e){ |
||
208 | this.shape=dojox.gfx.makeParameters(this.shape,_e); |
||
209 | this.bbox=null; |
||
210 | var r=this.rawNode,n=this.shape; |
||
211 | r.x1=n.x1; |
||
212 | r.y1=n.y1; |
||
213 | r.x2=n.x2; |
||
214 | r.y2=n.y2; |
||
215 | return this; |
||
216 | }}); |
||
217 | dojox.gfx.Line.nodeType="Line";
|
||
218 | dojo.declare("dojox.gfx.Polyline",dojox.gfx.shape.Polyline,{setShape:function(_f,_10){ |
||
219 | if(_f&&_f instanceof Array){ |
||
220 | this.shape=dojox.gfx.makeParameters(this.shape,{points:_f}); |
||
221 | if(_10&&this.shape.points.length){ |
||
222 | this.shape.points.push(this.shape.points[0]); |
||
223 | } |
||
224 | }else{
|
||
225 | this.shape=dojox.gfx.makeParameters(this.shape,_f); |
||
226 | } |
||
227 | this.bbox=null; |
||
228 | this._normalizePoints();
|
||
229 | var p=this.shape.points,rp=[]; |
||
230 | for(var i=0;i<p.length;++i){ |
||
231 | rp.push(p[i].x,p[i].y); |
||
232 | } |
||
233 | this.rawNode.points=rp.join(","); |
||
234 | return this; |
||
235 | }}); |
||
236 | dojox.gfx.Polyline.nodeType="Polyline";
|
||
237 | dojo.declare("dojox.gfx.Image",dojox.gfx.shape.Image,{setShape:function(_11){ |
||
238 | this.shape=dojox.gfx.makeParameters(this.shape,_11); |
||
239 | this.bbox=null; |
||
240 | var r=this.rawNode,n=this.shape; |
||
241 | r.width=n.width; |
||
242 | r.height=n.height; |
||
243 | r.source=n.src; |
||
244 | return this._applyTransform(); |
||
245 | },_getAdjustedMatrix:function(){ |
||
246 | var m=this.matrix,s=this.shape,d={dx:s.x,dy:s.y}; |
||
247 | return new dojox.gfx.Matrix2D(m?[m,d]:d); |
||
248 | },setRawNode:function(_12){ |
||
249 | this.rawNode=_12;
|
||
250 | }}); |
||
251 | dojox.gfx.Image.nodeType="Image";
|
||
252 | dojo.declare("dojox.gfx.Text",dojox.gfx.shape.Text,{setShape:function(_13){ |
||
253 | this.shape=dojox.gfx.makeParameters(this.shape,_13); |
||
254 | this.bbox=null; |
||
255 | var r=this.rawNode,s=this.shape; |
||
256 | r.text=s.text; |
||
257 | r.textDecorations=s.decoration==="underline"?"Underline":"None"; |
||
258 | r["Canvas.Left"]=-10000; |
||
259 | r["Canvas.Top"]=-10000; |
||
260 | if(!this._delay){ |
||
261 | this._delay=window.setTimeout(dojo.hitch(this,"_delayAlignment"),10); |
||
262 | } |
||
263 | return this; |
||
264 | },_delayAlignment:function(){ |
||
265 | var r=this.rawNode,s=this.shape,w=r.actualWidth,h=r.actualHeight,x=s.x,y=s.y-h*0.75; |
||
266 | switch(s.align){
|
||
267 | case "middle": |
||
268 | x-=w/2;
|
||
269 | break;
|
||
270 | case "end": |
||
271 | x-=w; |
||
272 | break;
|
||
273 | } |
||
274 | this._delta={dx:x,dy:y}; |
||
275 | r["Canvas.Left"]=0; |
||
276 | r["Canvas.Top"]=0; |
||
277 | this._applyTransform();
|
||
278 | delete this._delay; |
||
279 | },_getAdjustedMatrix:function(){ |
||
280 | var m=this.matrix,d=this._delta,x; |
||
281 | if(m){
|
||
282 | x=d?[m,d]:m; |
||
283 | }else{
|
||
284 | x=d?d:{}; |
||
285 | } |
||
286 | return new dojox.gfx.Matrix2D(x); |
||
287 | },setStroke:function(){ |
||
288 | return this; |
||
289 | },_setFillAttr:function(f){ |
||
290 | this.rawNode.foreground=f;
|
||
291 | },setRawNode:function(_14){ |
||
292 | this.rawNode=_14;
|
||
293 | },getTextWidth:function(){ |
||
294 | return this.rawNode.actualWidth; |
||
295 | }}); |
||
296 | dojox.gfx.Text.nodeType="TextBlock";
|
||
297 | dojo.declare("dojox.gfx.Path",dojox.gfx.path.Path,{_updateWithSegment:function(_15){ |
||
298 | dojox.gfx.Path.superclass._updateWithSegment.apply(this,arguments); |
||
299 | var p=this.shape.path; |
||
300 | if(typeof (p)=="string"){ |
||
301 | this.rawNode.data=p?p:null; |
||
302 | } |
||
303 | },setShape:function(_16){ |
||
304 | dojox.gfx.Path.superclass.setShape.apply(this,arguments); |
||
305 | var p=this.shape.path; |
||
306 | this.rawNode.data=p?p:null; |
||
307 | return this; |
||
308 | }}); |
||
309 | dojox.gfx.Path.nodeType="Path";
|
||
310 | dojo.declare("dojox.gfx.TextPath",dojox.gfx.path.TextPath,{_updateWithSegment:function(_17){ |
||
311 | },setShape:function(_18){ |
||
312 | },_setText:function(){ |
||
313 | }}); |
||
314 | dojox.gfx.TextPath.nodeType="text";
|
||
315 | dojox.gfx.silverlight.surfaces={}; |
||
316 | dojox.gfx.silverlight.nullFunc=function(){ |
||
317 | }; |
||
318 | dojo.declare("dojox.gfx.Surface",dojox.gfx.shape.Surface,{constructor:function(){ |
||
319 | dojox.gfx.silverlight.Container._init.call(this);
|
||
320 | },destroy:function(){ |
||
321 | window[this._onLoadName]=dojox.gfx.silverlight.nullFunc;
|
||
322 | delete dojox.gfx.silverlight.surfaces[this.rawNode.name]; |
||
323 | this.inherited(arguments); |
||
324 | },setDimensions:function(_19,_1a){ |
||
325 | this.width=dojox.gfx.normalizedLength(_19);
|
||
326 | this.height=dojox.gfx.normalizedLength(_1a);
|
||
327 | var p=this.rawNode&&this.rawNode.getHost(); |
||
328 | if(p){
|
||
329 | p.width=_19; |
||
330 | p.height=_1a; |
||
331 | } |
||
332 | return this; |
||
333 | },getDimensions:function(){ |
||
334 | var p=this.rawNode&&this.rawNode.getHost(); |
||
335 | var t=p?{width:p.content.actualWidth,height:p.content.actualHeight}:null; |
||
336 | if(t.width<=0){ |
||
337 | t.width=this.width;
|
||
338 | } |
||
339 | if(t.height<=0){ |
||
340 | t.height=this.height;
|
||
341 | } |
||
342 | return t;
|
||
343 | }}); |
||
344 | dojox.gfx.createSurface=function(_1b,_1c,_1d){ |
||
345 | if(!_1c&&!_1d){
|
||
346 | var pos=d.position(_1b);
|
||
347 | _1c=_1c||pos.w; |
||
348 | _1d=_1d||pos.h; |
||
349 | } |
||
350 | if(typeof _1c=="number"){ |
||
351 | _1c=_1c+"px";
|
||
352 | } |
||
353 | if(typeof _1d=="number"){ |
||
354 | _1d=_1d+"px";
|
||
355 | } |
||
356 | var s=new dojox.gfx.Surface(); |
||
357 | _1b=dojo.byId(_1b); |
||
358 | s._parent=_1b; |
||
359 | var t=_1b.ownerDocument.createElement("script"); |
||
360 | t.type="text/xaml";
|
||
361 | t.id=dojox.gfx._base._getUniqueId(); |
||
362 | t.text="<?xml version='1.0'?><Canvas xmlns='http://schemas.microsoft.com/client/2007' Name='"+dojox.gfx._base._getUniqueId()+"'/>"; |
||
363 | _1b.parentNode.insertBefore(t,_1b); |
||
364 | s._nodes.push(t); |
||
365 | var obj,_1e=dojox.gfx._base._getUniqueId(),_1f="__"+dojox.gfx._base._getUniqueId()+"_onLoad"; |
||
366 | s._onLoadName=_1f; |
||
367 | window[_1f]=function(_20){
|
||
368 | if(!s.rawNode){
|
||
369 | s.rawNode=dojo.byId(_1e).content.root; |
||
370 | dojox.gfx.silverlight.surfaces[s.rawNode.name]=_1b; |
||
371 | s.onLoad(s); |
||
372 | } |
||
373 | }; |
||
374 | if(dojo.isSafari){
|
||
375 | obj="<embed type='application/x-silverlight' id='"+_1e+"' width='"+_1c+"' height='"+_1d+" background='transparent'"+" source='#"+t.id+"'"+" windowless='true'"+" maxFramerate='60'"+" onLoad='"+_1f+"'"+" onError='__dojoSilverlightError'"+" /><iframe style='visibility:hidden;height:0;width:0'/>"; |
||
376 | }else{
|
||
377 | obj="<object type='application/x-silverlight' data='data:application/x-silverlight,' id='"+_1e+"' width='"+_1c+"' height='"+_1d+"'>"+"<param name='background' value='transparent' />"+"<param name='source' value='#"+t.id+"' />"+"<param name='windowless' value='true' />"+"<param name='maxFramerate' value='60' />"+"<param name='onLoad' value='"+_1f+"' />"+"<param name='onError' value='__dojoSilverlightError' />"+"</object>"; |
||
378 | } |
||
379 | _1b.innerHTML=obj; |
||
380 | var _21=dojo.byId(_1e);
|
||
381 | if(_21.content&&_21.content.root){
|
||
382 | s.rawNode=_21.content.root; |
||
383 | dojox.gfx.silverlight.surfaces[s.rawNode.name]=_1b; |
||
384 | }else{
|
||
385 | s.rawNode=null;
|
||
386 | s.isLoaded=false;
|
||
387 | } |
||
388 | s._nodes.push(_21); |
||
389 | s.width=dojox.gfx.normalizedLength(_1c); |
||
390 | s.height=dojox.gfx.normalizedLength(_1d); |
||
391 | return s;
|
||
392 | }; |
||
393 | __dojoSilverlightError=function(_22,err){ |
||
394 | var t="Silverlight Error:\n"+"Code: "+err.ErrorCode+"\n"+"Type: "+err.ErrorType+"\n"+"Message: "+err.ErrorMessage+"\n"; |
||
395 | switch(err.ErrorType){
|
||
396 | case "ParserError": |
||
397 | t+="XamlFile: "+err.xamlFile+"\n"+"Line: "+err.lineNumber+"\n"+"Position: "+err.charPosition+"\n"; |
||
398 | break;
|
||
399 | case "RuntimeError": |
||
400 | t+="MethodName: "+err.methodName+"\n"; |
||
401 | if(err.lineNumber!=0){ |
||
402 | t+="Line: "+err.lineNumber+"\n"+"Position: "+err.charPosition+"\n"; |
||
403 | } |
||
404 | break;
|
||
405 | } |
||
406 | console.error(t); |
||
407 | }; |
||
408 | dojox.gfx.silverlight.Font={_setFont:function(){ |
||
409 | var f=this.fontStyle,r=this.rawNode,fw=dojox.gfx.silverlight.fontweight,fo=dojox.gfx.silverlight.fonts,t=f.family.toLowerCase(); |
||
410 | r.fontStyle=f.style=="italic"?"Italic":"Normal"; |
||
411 | r.fontWeight=f.weight in fw?fw[f.weight]:f.weight;
|
||
412 | r.fontSize=dojox.gfx.normalizedLength(f.size); |
||
413 | r.fontFamily=t in fo?fo[t]:f.family;
|
||
414 | if(!this._delay){ |
||
415 | this._delay=window.setTimeout(dojo.hitch(this,"_delayAlignment"),10); |
||
416 | } |
||
417 | }}; |
||
418 | dojox.gfx.silverlight.Container={_init:function(){ |
||
419 | dojox.gfx.shape.Container._init.call(this);
|
||
420 | },add:function(_23){ |
||
421 | if(this!=_23.getParent()){ |
||
422 | dojox.gfx.shape.Container.add.apply(this,arguments); |
||
423 | this.rawNode.children.add(_23.rawNode);
|
||
424 | } |
||
425 | return this; |
||
426 | },remove:function(_24,_25){ |
||
427 | if(this==_24.getParent()){ |
||
428 | var _26=_24.rawNode.getParent();
|
||
429 | if(_26){
|
||
430 | _26.children.remove(_24.rawNode); |
||
431 | } |
||
432 | dojox.gfx.shape.Container.remove.apply(this,arguments); |
||
433 | } |
||
434 | return this; |
||
435 | },clear:function(){ |
||
436 | this.rawNode.children.clear();
|
||
437 | return dojox.gfx.shape.Container.clear.apply(this,arguments); |
||
438 | },_moveChildToFront:dojox.gfx.shape.Container._moveChildToFront,_moveChildToBack:dojox.gfx.shape.Container._moveChildToBack}; |
||
439 | dojo.mixin(dojox.gfx.shape.Creator,{createObject:function(_27,_28){ |
||
440 | if(!this.rawNode){ |
||
441 | return null; |
||
442 | } |
||
443 | var _29=new _27(); |
||
444 | var _2a=this.rawNode.getHost().content.createFromXaml("<"+_27.nodeType+"/>"); |
||
445 | _29.setRawNode(_2a); |
||
446 | _29.setShape(_28); |
||
447 | this.add(_29);
|
||
448 | return _29;
|
||
449 | }}); |
||
450 | dojo.extend(dojox.gfx.Text,dojox.gfx.silverlight.Font); |
||
451 | dojo.extend(dojox.gfx.Group,dojox.gfx.silverlight.Container); |
||
452 | dojo.extend(dojox.gfx.Group,dojox.gfx.shape.Creator); |
||
453 | dojo.extend(dojox.gfx.Surface,dojox.gfx.silverlight.Container); |
||
454 | dojo.extend(dojox.gfx.Surface,dojox.gfx.shape.Creator); |
||
455 | (function(){
|
||
456 | var _2b=dojox.gfx.silverlight.surfaces;
|
||
457 | var _2c=function(s,a){ |
||
458 | var ev={target:s,currentTarget:s,preventDefault:function(){ |
||
459 | },stopPropagation:function(){ |
||
460 | }}; |
||
461 | if(a){
|
||
462 | try{
|
||
463 | ev.ctrlKey=a.ctrl; |
||
464 | ev.shiftKey=a.shift; |
||
465 | var p=a.getPosition(null); |
||
466 | ev.x=ev.offsetX=ev.layerX=p.x; |
||
467 | ev.y=ev.offsetY=ev.layerY=p.y; |
||
468 | var _2d=_2b[s.getHost().content.root.name];
|
||
469 | var t=dojo.position(_2d);
|
||
470 | ev.clientX=t.x+p.x; |
||
471 | ev.clientY=t.y+p.y; |
||
472 | } |
||
473 | catch(e){
|
||
474 | } |
||
475 | } |
||
476 | return ev;
|
||
477 | }; |
||
478 | var _2e=function(s,a){ |
||
479 | var ev={keyCode:a.platformKeyCode,ctrlKey:a.ctrl,shiftKey:a.shift}; |
||
480 | return ev;
|
||
481 | }; |
||
482 | var _2f={onclick:{name:"MouseLeftButtonUp",fix:_2c},onmouseenter:{name:"MouseEnter",fix:_2c},onmouseleave:{name:"MouseLeave",fix:_2c},onmouseover:{name:"MouseEnter",fix:_2c},onmouseout:{name:"MouseLeave",fix:_2c},onmousedown:{name:"MouseLeftButtonDown",fix:_2c},onmouseup:{name:"MouseLeftButtonUp",fix:_2c},onmousemove:{name:"MouseMove",fix:_2c},onkeydown:{name:"KeyDown",fix:_2e},onkeyup:{name:"KeyUp",fix:_2e}}; |
||
483 | var _30={connect:function(_31,_32,_33){ |
||
484 | var _34,n=_31 in _2f?_2f[_31]:{name:_31,fix:function(){ |
||
485 | return {};
|
||
486 | }}; |
||
487 | if(arguments.length>2){ |
||
488 | _34=this.getEventSource().addEventListener(n.name,function(s,a){ |
||
489 | dojo.hitch(_32,_33)(n.fix(s,a)); |
||
490 | }); |
||
491 | }else{
|
||
492 | _34=this.getEventSource().addEventListener(n.name,function(s,a){ |
||
493 | _32(n.fix(s,a)); |
||
494 | }); |
||
495 | } |
||
496 | return {name:n.name,token:_34}; |
||
497 | },disconnect:function(_35){ |
||
498 | this.getEventSource().removeEventListener(_35.name,_35.token);
|
||
499 | }}; |
||
500 | dojo.extend(dojox.gfx.Shape,_30); |
||
501 | dojo.extend(dojox.gfx.Surface,_30); |
||
502 | dojox.gfx.equalSources=function(a,b){ |
||
503 | return a&&b&&a.equals(b);
|
||
504 | }; |
||
505 | })(); |
||
506 | } |