a:164:{s:9:"#provides";s:13:"dojox.gfx.vml";s:9:"#resource";s:10:"gfx/vml.js";s:9:"#requires";a:4:{i:0;a:2:{i:0;s:6:"common";i:1;s:15:"dojox.gfx._base";}i:1;a:2:{i:0;s:6:"common";i:1;s:15:"dojox.gfx.shape";}i:2;a:2:{i:0;s:6:"common";i:1;s:14:"dojox.gfx.path";}i:3;a:2:{i:0;s:6:"common";i:1;s:13:"dojox.gfx.arc";}}s:15:"dojox.gfx.Group";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:15:"dojox.gfx.Shape";}s:4:"call";a:2:{i:0;s:15:"dojox.gfx.Shape";i:1;s:19:"vml.Container._init";}}s:7:"summary";s:94:"a group shape (VML), which can be used
to logically group shapes (e.g, to propagate matricies)";s:6:"source";s:34:"			vml.Container._init.call(this);";s:9:"classlike";b:1;}s:31:"dojox.gfx.Group._applyTransform";a:6:{s:9:"prototype";s:15:"dojox.gfx.Group";s:4:"type";s:8:"Function";s:6:"source";s:167:"			var matrix = this._getRealMatrix();
			for(var i = 0; i < this.children.length; ++i){
				this.children[i]._updateParentMatrix(matrix);
			}
			return this;	// self";s:7:"summary";s:42:"applies a transformation matrix to a group";s:7:"returns";s:4:"self";s:7:"private";b:1;}s:30:"dojox.gfx.Group._setDimensions";a:7:{s:9:"prototype";s:15:"dojox.gfx.Group";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"width";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:15:"width in pixels";}s:6:"height";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:16:"height in pixels";}}s:6:"source";s:324:"			var r = this.rawNode, rs = r.style,
				bs = this.bgNode.style;
			rs.width = width;
			rs.height = height;
			r.coordsize = width + " " + height;
			bs.width = width;
			bs.height = height;
			for(var i = 0; i < this.children.length; ++i){
				this.children[i]._setDimensions(width, height);
			}
			return this; // self";s:7:"summary";s:78:"sets the width and height of the rawNode,
if the surface sixe has been changed";s:7:"returns";s:4:"self";s:7:"private";b:1;}s:14:"dojox.gfx.Rect";a:4:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:20:"dojox.gfx.shape.Rect";}s:4:"call";a:1:{i:0;s:20:"dojox.gfx.shape.Rect";}}s:7:"summary";s:23:"a rectangle shape (VML)";s:9:"classlike";b:1;}s:23:"dojox.gfx.Rect.setShape";a:6:{s:9:"prototype";s:14:"dojox.gfx.Rect";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:8:"newShape";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:24:"a rectangle shape object";}}s:6:"source";s:1532:"			var shape = this.shape = g.makeParameters(this.shape, newShape);
			this.bbox = null;
			var r = Math.min(1, (shape.r / Math.min(parseFloat(shape.width), parseFloat(shape.height)))).toFixed(8);
			// a workaround for the VML's arcsize bug: cannot read arcsize of an instantiated node
			var parent = this.rawNode.parentNode, before = null;
			if(parent){
				if(parent.lastChild !== this.rawNode){
					for(var i = 0; i < parent.childNodes.length; ++i){
						if(parent.childNodes[i] === this.rawNode){
							before = parent.childNodes[i + 1];
							break;
						}
					}
				}
				parent.removeChild(this.rawNode);
			}
			if(dojo.isIE > 7){
				var node = this.rawNode.ownerDocument.createElement("v:roundrect");
				node.arcsize = r;
				node.style.display = "inline-block";
				this.rawNode = node;
			}else{
				this.rawNode.arcsize = r;
			}
			if(parent){
				if(before){
					parent.insertBefore(this.rawNode, before);
				}else{
					parent.appendChild(this.rawNode);
				}
			}
			var style = this.rawNode.style;
			style.left   = shape.x.toFixed();
			style.top    = shape.y.toFixed();
			style.width  = (typeof shape.width == "string" && shape.width.indexOf("%") >= 0)  ? shape.width  : shape.width.toFixed();
			style.height = (typeof shape.width == "string" && shape.height.indexOf("%") >= 0) ? shape.height : shape.height.toFixed();
			// set all necessary styles, which are lost by VML (yes, it's a VML's bug)
			return this.setTransform(this.matrix).setFill(this.fillStyle).setStroke(this.strokeStyle);	// self";s:7:"summary";s:35:"sets a rectangle shape object (VML)";s:7:"returns";s:4:"self";}s:20:"dojox.gfx.Rect.shape";a:2:{s:8:"instance";s:14:"dojox.gfx.Rect";s:7:"summary";s:0:"";}s:19:"dojox.gfx.Rect.bbox";a:2:{s:8:"instance";s:14:"dojox.gfx.Rect";s:7:"summary";s:0:"";}s:22:"dojox.gfx.Rect.rawNode";a:2:{s:8:"instance";s:14:"dojox.gfx.Rect";s:7:"summary";s:0:"";}s:30:"dojox.gfx.Rect.rawNode.arcsize";a:2:{s:8:"instance";s:14:"dojox.gfx.Rect";s:7:"summary";s:0:"";}s:17:"dojox.gfx.Ellipse";a:4:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:23:"dojox.gfx.shape.Ellipse";}s:4:"call";a:1:{i:0;s:23:"dojox.gfx.shape.Ellipse";}}s:7:"summary";s:22:"an ellipse shape (VML)";s:9:"classlike";b:1;}s:26:"dojox.gfx.Ellipse.setShape";a:6:{s:9:"prototype";s:17:"dojox.gfx.Ellipse";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:8:"newShape";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:23:"an ellipse shape object";}}s:6:"source";s:363:"			var shape = this.shape = g.makeParameters(this.shape, newShape);
			this.bbox = null;
			var style = this.rawNode.style;
			style.left   = (shape.cx - shape.rx).toFixed();
			style.top    = (shape.cy - shape.ry).toFixed();
			style.width  = (shape.rx * 2).toFixed();
			style.height = (shape.ry * 2).toFixed();
			return this.setTransform(this.matrix);	// self";s:7:"summary";s:34:"sets an ellipse shape object (VML)";s:7:"returns";s:4:"self";}s:23:"dojox.gfx.Ellipse.shape";a:2:{s:8:"instance";s:17:"dojox.gfx.Ellipse";s:7:"summary";s:0:"";}s:22:"dojox.gfx.Ellipse.bbox";a:2:{s:8:"instance";s:17:"dojox.gfx.Ellipse";s:7:"summary";s:0:"";}s:16:"dojox.gfx.Circle";a:4:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:22:"dojox.gfx.shape.Circle";}s:4:"call";a:1:{i:0;s:22:"dojox.gfx.shape.Circle";}}s:7:"summary";s:20:"a circle shape (VML)";s:9:"classlike";b:1;}s:25:"dojox.gfx.Circle.setShape";a:6:{s:9:"prototype";s:16:"dojox.gfx.Circle";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:8:"newShape";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:21:"a circle shape object";}}s:6:"source";s:333:"			var shape = this.shape = g.makeParameters(this.shape, newShape);
			this.bbox = null;
			var style = this.rawNode.style;
			style.left   = (shape.cx - shape.r).toFixed();
			style.top    = (shape.cy - shape.r).toFixed();
			style.width  = (shape.r * 2).toFixed();
			style.height = (shape.r * 2).toFixed();
			return this;	// self";s:7:"summary";s:32:"sets a circle shape object (VML)";s:7:"returns";s:4:"self";}s:22:"dojox.gfx.Circle.shape";a:2:{s:8:"instance";s:16:"dojox.gfx.Circle";s:7:"summary";s:0:"";}s:21:"dojox.gfx.Circle.bbox";a:2:{s:8:"instance";s:16:"dojox.gfx.Circle";s:7:"summary";s:0:"";}s:14:"dojox.gfx.Line";a:6:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:20:"dojox.gfx.shape.Line";}s:4:"call";a:1:{i:0;s:20:"dojox.gfx.shape.Line";}}s:7:"summary";s:18:"a line shape (VML)";s:10:"parameters";a:1:{s:7:"rawNode";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:59:"			if(rawNode) rawNode.setAttribute("dojoGfxType", "line");";s:9:"classlike";b:1;}s:23:"dojox.gfx.Line.setShape";a:6:{s:9:"prototype";s:14:"dojox.gfx.Line";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:8:"newShape";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:19:"a line shape object";}}s:6:"source";s:280:"			var shape = this.shape = g.makeParameters(this.shape, newShape);
			this.bbox = null;
			this.rawNode.path.v = "m" + shape.x1.toFixed() + " " + shape.y1.toFixed() +
				"l" + shape.x2.toFixed() + " " + shape.y2.toFixed() + "e";
			return this.setTransform(this.matrix);	// self";s:7:"summary";s:30:"sets a line shape object (VML)";s:7:"returns";s:4:"self";}s:20:"dojox.gfx.Line.shape";a:2:{s:8:"instance";s:14:"dojox.gfx.Line";s:7:"summary";s:0:"";}s:19:"dojox.gfx.Line.bbox";a:2:{s:8:"instance";s:14:"dojox.gfx.Line";s:7:"summary";s:0:"";}s:29:"dojox.gfx.Line.rawNode.path.v";a:2:{s:8:"instance";s:14:"dojox.gfx.Line";s:7:"summary";s:0:"";}s:18:"dojox.gfx.Polyline";a:6:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:24:"dojox.gfx.shape.Polyline";}s:4:"call";a:1:{i:0;s:24:"dojox.gfx.shape.Polyline";}}s:7:"summary";s:30:"a polyline/polygon shape (VML)";s:10:"parameters";a:1:{s:7:"rawNode";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:63:"			if(rawNode) rawNode.setAttribute("dojoGfxType", "polyline");";s:9:"classlike";b:1;}s:27:"dojox.gfx.Polyline.setShape";a:6:{s:9:"prototype";s:18:"dojox.gfx.Polyline";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:6:"points";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:31:"a polyline/polygon shape object";}s:6:"closed";a:3:{s:4:"type";s:7:"Boolean";s:8:"optional";b:1;s:7:"summary";s:39:"if true, close the polyline explicitely";}}s:6:"source";s:1007:"			if(points && points instanceof Array){
				// branch
				// points: Array: an array of points
				this.shape = g.makeParameters(this.shape, { points: points });
				if(closed && this.shape.points.length) this.shape.points.push(this.shape.points[0]);
			}else{
				this.shape = g.makeParameters(this.shape, points);
			}
			this.bbox = null;
			var attr = [], p = this.shape.points;
			if(p.length > 0){
				attr.push("m");
				var k = 1;
				if(typeof p[0] == "number"){
					attr.push(p[0].toFixed());
					attr.push(p[1].toFixed());
					k = 2;
				}else{
					attr.push(p[0].x.toFixed());
					attr.push(p[0].y.toFixed());
				}
				if(p.length > k){
					attr.push("l");
					for(var i = k; i < p.length; ++i){
						if(typeof p[i] == "number"){
							attr.push(p[i].toFixed());
						}else{
							attr.push(p[i].x.toFixed());
							attr.push(p[i].y.toFixed());
						}
					}
				}
			}
			attr.push("e");
			this.rawNode.path.v = attr.join(" ");
			return this.setTransform(this.matrix);	// self";s:7:"summary";s:42:"sets a polyline/polygon shape object (VML)";s:7:"returns";s:4:"self";}s:24:"dojox.gfx.Polyline.shape";a:2:{s:8:"instance";s:18:"dojox.gfx.Polyline";s:7:"summary";s:0:"";}s:23:"dojox.gfx.Polyline.bbox";a:2:{s:8:"instance";s:18:"dojox.gfx.Polyline";s:7:"summary";s:0:"";}s:33:"dojox.gfx.Polyline.rawNode.path.v";a:2:{s:8:"instance";s:18:"dojox.gfx.Polyline";s:7:"summary";s:0:"";}s:15:"dojox.gfx.Image";a:4:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:21:"dojox.gfx.shape.Image";}s:4:"call";a:1:{i:0;s:21:"dojox.gfx.shape.Image";}}s:7:"summary";s:14:"an image (VML)";s:9:"classlike";b:1;}s:24:"dojox.gfx.Image.setShape";a:6:{s:9:"prototype";s:15:"dojox.gfx.Image";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:8:"newShape";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:21:"an image shape object";}}s:6:"source";s:182:"			var shape = this.shape = g.makeParameters(this.shape, newShape);
			this.bbox = null;
			this.rawNode.firstChild.src = shape.src;
			return this.setTransform(this.matrix);	// self";s:7:"summary";s:32:"sets an image shape object (VML)";s:7:"returns";s:4:"self";}s:31:"dojox.gfx.Image._applyTransform";a:6:{s:9:"prototype";s:15:"dojox.gfx.Image";s:4:"type";s:8:"Function";s:6:"source";s:1303:"			var matrix = this._getRealMatrix(),
				rawNode = this.rawNode,
				s = rawNode.style,
				shape = this.shape;
			if(matrix){
				matrix = m.multiply(matrix, {dx: shape.x, dy: shape.y});
			}else{
				matrix = m.normalize({dx: shape.x, dy: shape.y});
			}
			if(matrix.xy == 0 && matrix.yx == 0 && matrix.xx > 0 && matrix.yy > 0){
				// special case to avoid filters
				s.filter = "";
				s.width  = Math.floor(matrix.xx * shape.width);
				s.height = Math.floor(matrix.yy * shape.height);
				s.left   = Math.floor(matrix.dx);
				s.top    = Math.floor(matrix.dy);
			}else{
				var ps = rawNode.parentNode.style;
				s.left   = "0px";
				s.top    = "0px";
				s.width  = ps.width;
				s.height = ps.height;
				matrix = m.multiply(matrix,
					{xx: shape.width / parseInt(s.width), yy: shape.height / parseInt(s.height)});
				var f = rawNode.filters["DXImageTransform.Microsoft.Matrix"];
				if(f){
					f.M11 = matrix.xx;
					f.M12 = matrix.xy;
					f.M21 = matrix.yx;
					f.M22 = matrix.yy;
					f.Dx = matrix.dx;
					f.Dy = matrix.dy;
				}else{
					s.filter = "progid:DXImageTransform.Microsoft.Matrix(M11=" + matrix.xx +
						", M12=" + matrix.xy + ", M21=" + matrix.yx + ", M22=" + matrix.yy +
						", Dx=" + matrix.dx + ", Dy=" + matrix.dy + ")";
				}
			}
			return this; // self";s:7:"returns";s:4:"self";s:7:"private";b:1;s:7:"summary";s:0:"";}s:30:"dojox.gfx.Image._setDimensions";a:7:{s:9:"prototype";s:15:"dojox.gfx.Image";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"width";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:15:"width in pixels";}s:6:"height";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:16:"height in pixels";}}s:6:"source";s:224:"			var r = this.rawNode, f = r.filters["DXImageTransform.Microsoft.Matrix"];
			if(f){
				var s = r.style;
				s.width  = width;
				s.height = height;
				return this._applyTransform(); // self
			}
			return this;	// self";s:7:"summary";s:78:"sets the width and height of the rawNode,
if the surface sixe has been changed";s:7:"returns";s:4:"self";s:7:"private";b:1;}s:21:"dojox.gfx.Image.shape";a:2:{s:8:"instance";s:15:"dojox.gfx.Image";s:7:"summary";s:0:"";}s:20:"dojox.gfx.Image.bbox";a:2:{s:8:"instance";s:15:"dojox.gfx.Image";s:7:"summary";s:0:"";}s:38:"dojox.gfx.Image.rawNode.firstChild.src";a:2:{s:8:"instance";s:15:"dojox.gfx.Image";s:7:"summary";s:0:"";}s:14:"dojox.gfx.Text";a:6:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:20:"dojox.gfx.shape.Text";}s:4:"call";a:1:{i:0;s:20:"dojox.gfx.shape.Text";}}s:7:"summary";s:22:"an anchored text (VML)";s:10:"parameters";a:1:{s:7:"rawNode";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:86:"			if(rawNode){rawNode.setAttribute("dojoGfxType", "text");}
			this.fontStyle = null;";s:9:"classlike";b:1;}s:25:"dojox.gfx.Text._alignment";a:4:{s:9:"prototype";s:14:"dojox.gfx.Text";s:4:"type";s:6:"Object";s:7:"private";b:1;s:7:"summary";s:0:"";}s:23:"dojox.gfx.Text.setShape";a:6:{s:9:"prototype";s:14:"dojox.gfx.Text";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:8:"newShape";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:19:"a text shape object";}}s:6:"source";s:1137:"			this.shape = g.makeParameters(this.shape, newShape);
			this.bbox = null;
			var r = this.rawNode, s = this.shape, x = s.x, y = s.y.toFixed(), path;
			switch(s.align){
				case "middle":
					x -= 5;
					break;
				case "end":
					x -= 10;
					break;
			}
			path = "m" + x.toFixed() + "," + y + "l" + (x + 10).toFixed() + "," + y + "e";
			// find path and text path
			var p = null, t = null, c = r.childNodes;
			for(var i = 0; i < c.length; ++i){
				var tag = c[i].tagName;
				if(tag == "path"){
					p = c[i];
					if(t) break;
				}else if(tag == "textpath"){
					t = c[i];
					if(p) break;
				}
			}
			if(!p){
				p = r.ownerDocument.createElement("v:path");
				r.appendChild(p);
			}
			if(!t){
				t = r.ownerDocument.createElement("v:textpath");
				r.appendChild(t);
			}
			p.v = path;
			p.textPathOk = true;
			t.on = true;
			var a = vml.text_alignment[s.align];
			t.style["v-text-align"] = a ? a : "left";
			t.style["text-decoration"] = s.decoration;
			t.style["v-rotate-letters"] = s.rotated;
			t.style["v-text-kern"] = s.kerning;
			t.string = s.text;
			return this.setTransform(this.matrix);	// self";s:7:"summary";s:30:"sets a text shape object (VML)";s:7:"returns";s:4:"self";}s:23:"dojox.gfx.Text._setFont";a:5:{s:9:"prototype";s:14:"dojox.gfx.Text";s:4:"type";s:8:"Function";s:6:"source";s:231:"			var f = this.fontStyle, c = this.rawNode.childNodes;
			for(var i = 0; i < c.length; ++i){
				if(c[i].tagName == "textpath"){
					c[i].style.font = g.makeFontString(f);
					break;
				}
			}
			this.setTransform(this.matrix);";s:7:"summary";s:24:"sets a font object (VML)";s:7:"private";b:1;}s:29:"dojox.gfx.Text._getRealMatrix";a:7:{s:9:"prototype";s:14:"dojox.gfx.Text";s:4:"type";s:8:"Function";s:6:"source";s:500:"			var matrix = g.Shape.prototype._getRealMatrix.call(this);
			// It appears that text is always aligned vertically at a middle of x-height (???).
			// It is impossible to obtain these metrics from VML => I try to approximate it with
			// more-or-less util value of 0.7 * FontSize, which is typical for European fonts.
			if(matrix){
				matrix = m.multiply(matrix,
					{dy: -g.normalizedLength(this.fontStyle ? this.fontStyle.size : "10pt") * 0.35});
			}
			return matrix;	// dojox.gfx.Matrix2D";s:7:"summary";s:159:"returns the cumulative (&quot;real&quot;) transformation matrix
by combining the shape's matrix with its parent's matrix;
it makes a correction for a font size";s:7:"returns";s:18:"dojox.gfx.Matrix2D";s:6:"chains";a:1:{s:4:"call";a:1:{i:0;s:32:"g.Shape.prototype._getRealMatrix";}}s:7:"private";b:1;}s:27:"dojox.gfx.Text.getTextWidth";a:4:{s:9:"prototype";s:14:"dojox.gfx.Text";s:4:"type";s:8:"Function";s:6:"source";s:221:"			var rawNode = this.rawNode, _display = rawNode.style.display;
			rawNode.style.display = "inline";
			var _width = g.pt2px(parseFloat(rawNode.currentStyle.width));
			rawNode.style.display = _display;
			return _width;";s:7:"summary";s:25:"get the text width, in px";}s:31:"dojox.gfx.Text._alignment.start";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:32:"dojox.gfx.Text._alignment.middle";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:29:"dojox.gfx.Text._alignment.end";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:20:"dojox.gfx.Text.shape";a:2:{s:8:"instance";s:14:"dojox.gfx.Text";s:7:"summary";s:0:"";}s:19:"dojox.gfx.Text.bbox";a:2:{s:8:"instance";s:14:"dojox.gfx.Text";s:7:"summary";s:0:"";}s:24:"dojox.gfx.Text.fontStyle";a:2:{s:8:"instance";s:14:"dojox.gfx.Text";s:7:"summary";s:0:"";}s:14:"dojox.gfx.Path";a:6:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:19:"dojox.gfx.path.Path";}s:4:"call";a:1:{i:0;s:19:"dojox.gfx.path.Path";}}s:7:"summary";s:18:"a path shape (VML)";s:10:"parameters";a:1:{s:7:"rawNode";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:157:"			if(rawNode && !rawNode.getAttribute("dojoGfxType")){
				rawNode.setAttribute("dojoGfxType", "path");
			}
			this.vmlPath = "";
			this.lastControl = {};";s:9:"classlike";b:1;}s:33:"dojox.gfx.Path._updateWithSegment";a:7:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"segment";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:9:"a segment";}}s:6:"source";s:390:"			var last = dojo.clone(this.last);
			g.Path.superclass._updateWithSegment.apply(this, arguments);
			// add a VML path segment
			var path = this[this.renderers[segment.action]](segment, last);
			if(typeof this.vmlPath == "string"){
				this.vmlPath += path.join("");
				this.rawNode.path.v = this.vmlPath + " r0,0 e";
			}else{
				Array.prototype.push.apply(this.vmlPath, path);
			}";s:7:"summary";s:49:"updates the bounding box of path with new segment";s:6:"chains";a:1:{s:4:"call";a:2:{i:0;s:36:"g.Path.superclass._updateWithSegment";i:1;s:20:"Array.prototype.push";}}s:7:"private";b:1;}s:23:"dojox.gfx.Path.setShape";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:8:"newShape";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:63:"an VML path string or a path object (see dojox.gfx.defaultPath)";}}s:6:"source";s:240:"			this.vmlPath = [];
			this.lastControl.type = "";	// no prior control point
			g.Path.superclass.setShape.apply(this, arguments);
			this.vmlPath = this.vmlPath.join("");
			this.rawNode.path.v = this.vmlPath + " r0,0 e";
			return this;";s:7:"summary";s:32:"forms a path using a shape (VML)";s:6:"chains";a:1:{s:4:"call";a:1:{i:0;s:26:"g.Path.superclass.setShape";}}}s:31:"dojox.gfx.Path._pathVmlToSvgMap";a:4:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:6:"Object";s:7:"private";b:1;s:7:"summary";s:0:"";}s:24:"dojox.gfx.Path.renderers";a:3:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:23:"dojox.gfx.Path._addArgs";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:4:{s:4:"path";a:1:{s:4:"type";s:0:"";}s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"from";a:1:{s:4:"type";s:0:"";}s:4:"upto";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:139:"			var n = segment instanceof Array ? segment : segment.args;
			for(var i = from; i < upto; ++i){
				path.push(" ", n[i].toFixed());
			}";s:7:"private";b:1;s:7:"summary";s:0:"";}s:28:"dojox.gfx.Path._adjustRelCrd";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:4:"last";a:1:{s:4:"type";s:0:"";}s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"step";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:705:"			var n = segment instanceof Array ? segment : segment.args, l = n.length,
				result = new Array(l), i = 0, x = last.x, y = last.y;
			if(typeof x != "number"){
				// there is no last coordinate =>
				// treat the first pair as an absolute coordinate
				result[0] = x = n[0];
				result[1] = y = n[1];
				i = 2;
			}
			if(typeof step == "number" && step != 2){
				var j = step;
				while(j <= l){
					for(; i < j; i += 2){
						result[i] = x + n[i];
						result[i + 1] = y + n[i + 1];
					}
					x = result[j - 2];
					y = result[j - 1];
					j += step;
				}
			}else{
				for(; i < l; i += 2){
					result[i] = (x += n[i]);
					result[i + 1] = (y += n[i + 1]);
				}
			}
			return result;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:28:"dojox.gfx.Path._adjustRelPos";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:4:"last";a:1:{s:4:"type";s:0:"";}s:7:"segment";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:188:"			var n = segment instanceof Array ? segment : segment.args, l = n.length,
				result = new Array(l);
			for(var i = 0; i < l; ++i){
				result[i] = (last += n[i]);
			}
			return result;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:23:"dojox.gfx.Path._moveToA";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"segment";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:270:"			var p = [" m"], n = segment instanceof Array ? segment : segment.args, l = n.length;
			this._addArgs(p, n, 0, 2);
			if(l > 2){
				p.push(" l");
				this._addArgs(p, n, 2, l);
			}
			this.lastControl.type = "";	// no control point after this primitive
			return p;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:23:"dojox.gfx.Path._moveToR";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:59:"			return this._moveToA(this._adjustRelCrd(last, segment));";s:7:"private";b:1;s:7:"summary";s:0:"";}s:23:"dojox.gfx.Path._lineToA";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"segment";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:195:"			var p = [" l"], n = segment instanceof Array ? segment : segment.args;
			this._addArgs(p, n, 0, n.length);
			this.lastControl.type = "";	// no control point after this primitive
			return p;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:23:"dojox.gfx.Path._lineToR";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:59:"			return this._lineToA(this._adjustRelCrd(last, segment));";s:7:"private";b:1;s:7:"summary";s:0:"";}s:24:"dojox.gfx.Path._hLineToA";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:276:"			var p = [" l"], y = " " + last.y.toFixed(),
				n = segment instanceof Array ? segment : segment.args, l = n.length;
			for(var i = 0; i < l; ++i){
				p.push(" ", n[i].toFixed(), y);
			}
			this.lastControl.type = "";	// no control point after this primitive
			return p;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:24:"dojox.gfx.Path._hLineToR";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:68:"			return this._hLineToA(this._adjustRelPos(last.x, segment), last);";s:7:"private";b:1;s:7:"summary";s:0:"";}s:24:"dojox.gfx.Path._vLineToA";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:276:"			var p = [" l"], x = " " + last.x.toFixed(),
				n = segment instanceof Array ? segment : segment.args, l = n.length;
			for(var i = 0; i < l; ++i){
				p.push(x, " ", n[i].toFixed());
			}
			this.lastControl.type = "";	// no control point after this primitive
			return p;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:24:"dojox.gfx.Path._vLineToR";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:68:"			return this._vLineToA(this._adjustRelPos(last.y, segment), last);";s:7:"private";b:1;s:7:"summary";s:0:"";}s:24:"dojox.gfx.Path._curveToA";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"segment";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:273:"			var p = [], n = segment instanceof Array ? segment : segment.args, l = n.length,
				lc = this.lastControl;
			for(var i = 0; i < l; i += 6){
				p.push(" c");
				this._addArgs(p, n, i, i + 6);
			}
			lc.x = n[l - 4];
			lc.y = n[l - 3];
			lc.type = "C";
			return p;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:24:"dojox.gfx.Path._curveToR";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:63:"			return this._curveToA(this._adjustRelCrd(last, segment, 6));";s:7:"private";b:1;s:7:"summary";s:0:"";}s:30:"dojox.gfx.Path._smoothCurveToA";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:522:"			var p = [], n = segment instanceof Array ? segment : segment.args, l = n.length,
				lc = this.lastControl, i = 0;
			if(lc.type != "C"){
				p.push(" c");
				this._addArgs(p, [last.x, last.y], 0, 2);
				this._addArgs(p, n, 0, 4);
				lc.x = n[0];
				lc.y = n[1];
				lc.type = "C";
				i = 4;
			}
			for(; i < l; i += 4){
				p.push(" c");
				this._addArgs(p, [
					2 * last.x - lc.x,
					2 * last.y - lc.y
				], 0, 2);
				this._addArgs(p, n, i, i + 4);
				lc.x = n[i];
				lc.y = n[i + 1];
			}
			return p;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:30:"dojox.gfx.Path._smoothCurveToR";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:75:"			return this._smoothCurveToA(this._adjustRelCrd(last, segment, 4), last);";s:7:"private";b:1;s:7:"summary";s:0:"";}s:25:"dojox.gfx.Path._qCurveToA";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"segment";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:274:"			var p = [], n = segment instanceof Array ? segment : segment.args, l = n.length,
				lc = this.lastControl;
			for(var i = 0; i < l; i += 4){
				p.push(" qb");
				this._addArgs(p, n, i, i + 4);
			}
			lc.x = n[l - 4];
			lc.y = n[l - 3];
			lc.type = "Q";
			return p;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:25:"dojox.gfx.Path._qCurveToR";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:64:"			return this._qCurveToA(this._adjustRelCrd(last, segment, 4));";s:7:"private";b:1;s:7:"summary";s:0:"";}s:31:"dojox.gfx.Path._qSmoothCurveToA";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:496:"			var p = [], n = segment instanceof Array ? segment : segment.args, l = n.length,
				lc = this.lastControl, i = 0;
			if(lc.type != "Q"){
				p.push(" qb");
				this._addArgs(p, [
					lc.x = last.x,
					lc.y = last.y
				], 0, 2);
				lc.type = "Q";
				this._addArgs(p, n, 0, 2);
				i = 2;
			}
			for(; i < l; i += 2){
				p.push(" qb");
				this._addArgs(p, [
					lc.x = 2 * last.x - lc.x,
					lc.y = 2 * last.y - lc.y
				], 0, 2);
				this._addArgs(p, n, i, i + 2);
			}
			return p;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:31:"dojox.gfx.Path._qSmoothCurveToR";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:76:"			return this._qSmoothCurveToA(this._adjustRelCrd(last, segment, 2), last);";s:7:"private";b:1;s:7:"summary";s:0:"";}s:21:"dojox.gfx.Path._arcTo";a:6:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:7:"segment";a:1:{s:4:"type";s:0:"";}s:4:"last";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:603:"			var p = [], n = segment.args, l = n.length, relative = segment.action == "a";
			for(var i = 0; i < l; i += 7){
				var x1 = n[i + 5], y1 = n[i + 6];
				if(relative){
					x1 += last.x;
					y1 += last.y;
				}
				var result = g.arc.arcAsBezier(
					last, n[i], n[i + 1], n[i + 2],
					n[i + 3] ? 1 : 0, n[i + 4] ? 1 : 0,
					x1, y1
				);
				for(var j = 0; j < result.length; ++j){
					p.push(" c");
					var t = result[j];
					this._addArgs(p, t, 0, t.length);
				}
				last.x = x1;
				last.y = y1;
			}
			this.lastControl.type = "";	// no control point after this primitive
			return p;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:25:"dojox.gfx.Path._closePath";a:5:{s:9:"prototype";s:14:"dojox.gfx.Path";s:4:"type";s:8:"Function";s:6:"source";s:88:"			this.lastControl.type = "";	// no control point after this primitive
			return ["x"];";s:7:"private";b:1;s:7:"summary";s:0:"";}s:22:"dojox.gfx.Path.vmlPath";a:2:{s:8:"instance";s:14:"dojox.gfx.Path";s:7:"summary";s:0:"";}s:29:"dojox.gfx.Path.rawNode.path.v";a:2:{s:8:"instance";s:14:"dojox.gfx.Path";s:7:"summary";s:0:"";}s:31:"dojox.gfx.Path.lastControl.type";a:2:{s:8:"instance";s:14:"dojox.gfx.Path";s:7:"summary";s:0:"";}s:33:"dojox.gfx.Path._pathVmlToSvgMap.m";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:33:"dojox.gfx.Path._pathVmlToSvgMap.l";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:33:"dojox.gfx.Path._pathVmlToSvgMap.t";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:33:"dojox.gfx.Path._pathVmlToSvgMap.r";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:33:"dojox.gfx.Path._pathVmlToSvgMap.c";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:33:"dojox.gfx.Path._pathVmlToSvgMap.v";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:34:"dojox.gfx.Path._pathVmlToSvgMap.qb";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:33:"dojox.gfx.Path._pathVmlToSvgMap.x";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:33:"dojox.gfx.Path._pathVmlToSvgMap.e";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.M";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.L";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.H";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.V";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.C";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.S";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.Q";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.T";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.A";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.renderers.Z";a:1:{s:7:"summary";s:0:"";}s:26:"dojox.gfx.Path.lastControl";a:2:{s:8:"instance";s:14:"dojox.gfx.Path";s:7:"summary";s:0:"";}s:18:"dojox.gfx.TextPath";a:6:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:14:"dojox.gfx.Path";}s:4:"call";a:1:{i:0;s:14:"dojox.gfx.Path";}}s:7:"summary";s:22:"a textpath shape (VML)";s:10:"parameters";a:1:{s:7:"rawNode";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:252:"			if(rawNode){rawNode.setAttribute("dojoGfxType", "textpath");}
			this.fontStyle = null;
			if(!("text" in this)){
				this.text = dojo.clone(g.defaultTextPath);
			}
			if(!("fontStyle" in this)){
				this.fontStyle = dojo.clone(g.defaultFont);
			}";s:9:"classlike";b:1;}s:26:"dojox.gfx.TextPath.setText";a:6:{s:9:"prototype";s:18:"dojox.gfx.TextPath";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"newText";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:147:"			this.text = g.makeParameters(this.text,
				typeof newText == "string" ? {text: newText} : newText);
			this._setText();
			return this;	// self";s:7:"summary";s:38:"sets a text to be drawn along the path";s:7:"returns";s:4:"self";}s:26:"dojox.gfx.TextPath.setFont";a:6:{s:9:"prototype";s:18:"dojox.gfx.TextPath";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"newFont";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:171:"			this.fontStyle = typeof newFont == "string" ?
				g.splitFontString(newFont) :
				g.makeParameters(g.defaultFont, newFont);
			this._setFont();
			return this;	// self";s:7:"summary";s:20:"sets a font for text";s:7:"returns";s:4:"self";}s:27:"dojox.gfx.TextPath._setText";a:5:{s:9:"prototype";s:18:"dojox.gfx.TextPath";s:4:"type";s:8:"Function";s:6:"source";s:808:"			this.bbox = null;
			var r = this.rawNode, s = this.text,
				// find path and text path
				p = null, t = null, c = r.childNodes;
			for(var i = 0; i < c.length; ++i){
				var tag = c[i].tagName;
				if(tag == "path"){
					p = c[i];
					if(t) break;
				}else if(tag == "textpath"){
					t = c[i];
					if(p) break;
				}
			}
			if(!p){
				p = this.rawNode.ownerDocument.createElement("v:path");
				r.appendChild(p);
			}
			if(!t){
				t = this.rawNode.ownerDocument.createElement("v:textpath");
				r.appendChild(t);
			}
			p.textPathOk = true;
			t.on = true;
			var a = vml.text_alignment[s.align];
			t.style["v-text-align"] = a ? a : "left";
			t.style["text-decoration"] = s.decoration;
			t.style["v-rotate-letters"] = s.rotated;
			t.style["v-text-kern"] = s.kerning;
			t.string = s.text;";s:7:"summary";s:30:"sets a text shape object (VML)";s:7:"private";b:1;}s:27:"dojox.gfx.TextPath._setFont";a:5:{s:9:"prototype";s:18:"dojox.gfx.TextPath";s:4:"type";s:8:"Function";s:6:"source";s:196:"			var f = this.fontStyle, c = this.rawNode.childNodes;
			for(var i = 0; i < c.length; ++i){
				if(c[i].tagName == "textpath"){
					c[i].style.font = g.makeFontString(f);
					break;
				}
			}";s:7:"summary";s:24:"sets a font object (VML)";s:7:"private";b:1;}s:23:"dojox.gfx.TextPath.text";a:2:{s:8:"instance";s:18:"dojox.gfx.TextPath";s:7:"summary";s:0:"";}s:28:"dojox.gfx.TextPath.fontStyle";a:2:{s:8:"instance";s:18:"dojox.gfx.TextPath";s:7:"summary";s:0:"";}s:23:"dojox.gfx.TextPath.bbox";a:2:{s:8:"instance";s:18:"dojox.gfx.TextPath";s:7:"summary";s:0:"";}s:17:"dojox.gfx.Surface";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:23:"dojox.gfx.shape.Surface";}s:4:"call";a:2:{i:0;s:23:"dojox.gfx.shape.Surface";i:1;s:19:"vml.Container._init";}}s:7:"summary";s:46:"a surface object to be used for drawings (VML)";s:6:"source";s:34:"			vml.Container._init.call(this);";s:9:"classlike";b:1;}s:31:"dojox.gfx.Surface.setDimensions";a:6:{s:9:"prototype";s:17:"dojox.gfx.Surface";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"width";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:41:"width of surface, e.g., &quot;100px&quot;";}s:6:"height";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:42:"height of surface, e.g., &quot;100px&quot;";}}s:6:"source";s:683:"			this.width  = g.normalizedLength(width);	// in pixels
			this.height = g.normalizedLength(height);	// in pixels
			if(!this.rawNode) return this;
			var cs = this.clipNode.style,
				r = this.rawNode, rs = r.style,
				bs = this.bgNode.style,
				ps = this._parent.style, i;
			ps.width = width;
			ps.height = height;
			cs.width  = width;
			cs.height = height;
			cs.clip = "rect(0px " + width + "px " + height + "px 0px)";
			rs.width = width;
			rs.height = height;
			r.coordsize = width + " " + height;
			bs.width = width;
			bs.height = height;
			for(i = 0; i < this.children.length; ++i){
				this.children[i]._setDimensions(width, height);
			}
			return this;	// self";s:7:"summary";s:40:"sets the width and height of the rawNode";s:7:"returns";s:4:"self";}s:31:"dojox.gfx.Surface.getDimensions";a:5:{s:9:"prototype";s:17:"dojox.gfx.Surface";s:4:"type";s:8:"Function";s:6:"source";s:270:"			var t = this.rawNode ? {
				width:  g.normalizedLength(this.rawNode.style.width),
				height: g.normalizedLength(this.rawNode.style.height)} : null;
			if(t.width  <= 0){ t.width  = this.width; }
			if(t.height <= 0){ t.height = this.height; }
			return t;	// Object";s:7:"summary";s:74:"returns an object with properties &quot;width&quot; and &quot;height&quot;";s:7:"returns";s:6:"Object";}s:23:"dojox.gfx.Surface.width";a:2:{s:8:"instance";s:17:"dojox.gfx.Surface";s:7:"summary";s:0:"";}s:24:"dojox.gfx.Surface.height";a:2:{s:8:"instance";s:17:"dojox.gfx.Surface";s:7:"summary";s:0:"";}s:37:"dojox.gfx.Surface.setDimensions.width";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:41:"width of surface, e.g., &quot;100px&quot;";}s:38:"dojox.gfx.Surface.setDimensions.height";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:42:"height of surface, e.g., &quot;100px&quot;";}s:9:"vml.xmlns";a:1:{s:7:"summary";s:0:"";}s:18:"vml.text_alignment";a:1:{s:7:"summary";s:0:"";}s:15:"vml._parseFloat";a:2:{s:7:"private";b:1;s:7:"summary";s:0:"";}s:9:"vml._bool";a:2:{s:7:"private";b:1;s:7:"summary";s:0:"";}s:16:"g.Group.nodeType";a:1:{s:7:"summary";s:0:"";}s:15:"g.Rect.nodeType";a:1:{s:7:"summary";s:0:"";}s:18:"g.Ellipse.nodeType";a:1:{s:7:"summary";s:0:"";}s:17:"g.Circle.nodeType";a:1:{s:7:"summary";s:0:"";}s:15:"g.Line.nodeType";a:1:{s:7:"summary";s:0:"";}s:19:"g.Polyline.nodeType";a:1:{s:7:"summary";s:0:"";}s:16:"g.Image.nodeType";a:1:{s:7:"summary";s:0:"";}s:15:"g.Text.nodeType";a:1:{s:7:"summary";s:0:"";}s:15:"g.path._calcArc";a:2:{s:7:"private";b:1;s:7:"summary";s:0:"";}s:15:"g.Path.nodeType";a:1:{s:7:"summary";s:0:"";}s:19:"g.TextPath.nodeType";a:1:{s:7:"summary";s:0:"";}s:13:"vml.Container";a:1:{s:7:"summary";s:0:"";}s:23:"dojox.gfx.createSurface";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:10:"parentNode";a:2:{s:4:"type";s:4:"Node";s:7:"summary";s:13:"a parent node";}s:5:"width";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:41:"width of surface, e.g., &quot;100px&quot;";}s:6:"height";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:42:"height of surface, e.g., &quot;100px&quot;";}}s:6:"source";s:1294:"		if(!width){ width = "100%"; }
		if(!height){ height = "100%"; }
		var s = new g.Surface(), p = dojo.byId(parentNode),
			c = s.clipNode = p.ownerDocument.createElement("div"),
			r = s.rawNode = p.ownerDocument.createElement("v:group"),
			cs = c.style, rs = r.style;


		if(dojo.isIE > 7){
			rs.display = "inline-block";
		}


		s._parent = p;
		s._nodes.push(c);	// other elements will be deleted as parts of "c"


		p.style.width  = width;
		p.style.height = height;


		cs.position = "absolute";
		cs.width  = width;
		cs.height = height;
		cs.clip = "rect(0px " + width + "px " + height + "px 0px)";
		rs.position = "absolute";
		rs.width  = width;
		rs.height = height;
		r.coordsize = (width == "100%" ? width : parseFloat(width)) + " " +
			(height == "100%" ? height : parseFloat(height));
		r.coordorigin = "0 0";


		// create a background rectangle, which is required to show all other shapes
		var b = s.bgNode = r.ownerDocument.createElement("v:rect"), bs = b.style;
		bs.left = bs.top = 0;
		bs.width  = rs.width;
		bs.height = rs.height;
		b.filled = b.stroked = "f";


		r.appendChild(b);
		c.appendChild(r);
		p.appendChild(c);


		s.width  = g.normalizedLength(width);	// in pixels
		s.height = g.normalizedLength(height);	// in pixels




		return s;	// dojox.gfx.Surface";s:7:"summary";s:23:"creates a surface (VML)";s:7:"returns";s:17:"dojox.gfx.Surface";}s:4:"p2.x";a:1:{s:7:"summary";s:0:"";}s:4:"p2.y";a:1:{s:7:"summary";s:0:"";}s:2:"p2";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:14:".Shape.setFill";a:6:{s:9:"prototype";s:6:".Shape";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"fill";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:125:"a fill object
(see dojox.gfx.defaultLinearGradient,
dojox.gfx.defaultRadialGradient,
dojox.gfx.defaultPattern,
or dojo.Color)";}}s:6:"source";s:3765:"			if(!fill){
				// don't fill
				this.fillStyle = null;
				this.rawNode.filled = "f";
				return this;
			}
			var i, f, fo, a, s;
			if(typeof fill == "object" && "type" in fill){
				// gradient
				switch(fill.type){
					case "linear":
						var matrix = this._getRealMatrix();
						s = [];
						f = g.makeParameters(g.defaultLinearGradient, fill);
						a = f.colors;
						this.fillStyle = f;
						dojo.forEach(a, function(v, i, a){
							a[i].color = g.normalizeColor(v.color);
						});
						if(a[0].offset > 0){
							s.push("0 " + a[0].color.toHex());
						}
						for(i = 0; i < a.length; ++i){
							s.push(a[i].offset.toFixed(8) + " " + a[i].color.toHex());
						}
						i = a.length - 1;
						if(a[i].offset < 1){
							s.push("1 " + a[i].color.toHex());
						}
						fo = this.rawNode.fill;
						fo.colors.value = s.join(";");
						fo.method = "sigma";
						fo.type = "gradient";
						var fc1 = matrix ? m.multiplyPoint(matrix, f.x1, f.y1) : {x: f.x1, y: f.y1},
							fc2 = matrix ? m.multiplyPoint(matrix, f.x2, f.y2) : {x: f.x2, y: f.y2};
						fo.angle = (m._radToDeg(Math.atan2(fc2.x - fc1.x, fc2.y - fc1.y)) + 180) % 360;
						fo.on = true;
						break;
					case "radial":
						f = g.makeParameters(g.defaultRadialGradient, fill);
						this.fillStyle = f;
						var l = parseFloat(this.rawNode.style.left),
							t = parseFloat(this.rawNode.style.top),
							w = parseFloat(this.rawNode.style.width),
							h = parseFloat(this.rawNode.style.height),
							c = isNaN(w) ? 1 : 2 * f.r / w;
						a = [];
						// add a color at the offset 0 (1 in VML coordinates)
						if(f.colors[0].offset > 0){
							a.push({offset: 1, color: g.normalizeColor(f.colors[0].color)});
						}
						// massage colors
						dojo.forEach(f.colors, function(v, i){
							a.push({offset: 1 - v.offset * c, color: g.normalizeColor(v.color)});
						});
						i = a.length - 1;
						while(i >= 0 && a[i].offset < 0){ --i; }
						if(i < a.length - 1){
							// correct excessive colors
							var q = a[i], p = a[i + 1];
							p.color = dojo.blendColors(q.color, p.color, q.offset / (q.offset - p.offset));
							p.offset = 0;
							while(a.length - i > 2) a.pop();
						}
						// set colors
						i = a.length - 1, s = [];
						if(a[i].offset > 0){
							s.push("0 " + a[i].color.toHex());
						}
						for(; i >= 0; --i){
							s.push(a[i].offset.toFixed(8) + " " + a[i].color.toHex());
						}
						fo = this.rawNode.fill;
						fo.colors.value = s.join(";");
						fo.method = "sigma";
						fo.type = "gradientradial";
						if(isNaN(w) || isNaN(h) || isNaN(l) || isNaN(t)){
							fo.focusposition = "0.5 0.5";
						}else{
							fo.focusposition = ((f.cx - l) / w).toFixed(8) + " " + ((f.cy - t) / h).toFixed(8);
						}
						fo.focussize = "0 0";
						fo.on = true;
						break;
					case "pattern":
						f = g.makeParameters(g.defaultPattern, fill);
						this.fillStyle = f;
						fo = this.rawNode.fill;
						fo.type = "tile";
						fo.src = f.src;
						if(f.width && f.height){
							// in points
							fo.size.x = g.px2pt(f.width);
							fo.size.y = g.px2pt(f.height);
						}
						fo.alignShape = "f";
						fo.position.x = 0;
						fo.position.y = 0;
						fo.origin.x = f.width  ? f.x / f.width  : 0;
						fo.origin.y = f.height ? f.y / f.height : 0;
						fo.on = true;
						break;
				}
				this.rawNode.fill.opacity = 1;
				return this;
			}
			// color object
			this.fillStyle = g.normalizeColor(fill);
			fo = this.rawNode.fill;
			if(!fo){
				fo = this.rawNode.ownerDocument.createElement("v:fill");
			}
			fo.method = "any";
			fo.type = "solid";
			fo.opacity = this.fillStyle.a;
			this.rawNode.fillcolor = this.fillStyle.toHex();
			this.rawNode.filled = true;
			return this;	// self";s:7:"summary";s:24:"sets a fill object (VML)";s:7:"returns";s:4:"self";}s:16:".Shape.fillStyle";a:2:{s:8:"instance";s:6:".Shape";s:7:"summary";s:0:"";}s:21:".Shape.rawNode.filled";a:2:{s:8:"instance";s:6:".Shape";s:7:"summary";s:0:"";}s:27:".Shape.rawNode.fill.opacity";a:2:{s:8:"instance";s:6:".Shape";s:7:"summary";s:0:"";}s:24:".Shape.rawNode.fillcolor";a:2:{s:8:"instance";s:6:".Shape";s:7:"summary";s:0:"";}s:16:".Shape.setStroke";a:6:{s:9:"prototype";s:6:".Shape";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:6:"stroke";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:45:"a stroke object
(see dojox.gfx.defaultStroke)";}}s:6:"source";s:1002:"			if(!stroke){
				// don't stroke
				this.strokeStyle = null;
				this.rawNode.stroked = "f";
				return this;
			}
			// normalize the stroke
			if(typeof stroke == "string" || dojo.isArray(stroke) || stroke instanceof dojo.Color){
				stroke = {color: stroke};
			}
			var s = this.strokeStyle = g.makeParameters(g.defaultStroke, stroke);
			s.color = g.normalizeColor(s.color);
			// generate attributes
			var rn = this.rawNode;
			rn.stroked = true;
			rn.strokecolor = s.color.toCss();
			rn.strokeweight = s.width + "px";	// TODO: should we assume that the width is always in pixels?
			if(rn.stroke) {
				rn.stroke.opacity = s.color.a;
				rn.stroke.endcap = this._translate(this._capMap, s.cap);
				if(typeof s.join == "number") {
					rn.stroke.joinstyle = "miter";
					rn.stroke.miterlimit = s.join;
				}else{
					rn.stroke.joinstyle = s.join;
					// rn.stroke.miterlimit = s.width;
				}
				rn.stroke.dashstyle = s.style == "none" ? "Solid" : s.style;
			}
			return this;	// self";s:7:"summary";s:26:"sets a stroke object (VML)";s:7:"returns";s:4:"self";}s:18:".Shape.strokeStyle";a:2:{s:8:"instance";s:6:".Shape";s:7:"summary";s:0:"";}s:22:".Shape.rawNode.stroked";a:2:{s:8:"instance";s:6:".Shape";s:7:"summary";s:0:"";}s:14:".Shape._capMap";a:4:{s:9:"prototype";s:6:".Shape";s:4:"type";s:6:"Object";s:7:"private";b:1;s:7:"summary";s:0:"";}s:19:".Shape._capMap.butt";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:22:".Shape._capMapReversed";a:4:{s:9:"prototype";s:6:".Shape";s:4:"type";s:6:"Object";s:7:"private";b:1;s:7:"summary";s:0:"";}s:27:".Shape._capMapReversed.flat";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:17:".Shape._translate";a:6:{s:9:"prototype";s:6:".Shape";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:4:"dict";a:1:{s:4:"type";s:0:"";}s:5:"value";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:48:"			return (value in dict) ? dict[value] : value;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:22:".Shape._applyTransform";a:5:{s:9:"prototype";s:6:".Shape";s:4:"type";s:8:"Function";s:6:"source";s:1120:"			if(this.fillStyle && this.fillStyle.type == "linear"){
				this.setFill(this.fillStyle);
			}
			var matrix = this._getRealMatrix();
			if(!matrix) return this;
			var skew = this.rawNode.skew;
			if(typeof skew == "undefined"){
				for(var i = 0; i < this.rawNode.childNodes.length; ++i){
					if(this.rawNode.childNodes[i].tagName == "skew"){
						skew = this.rawNode.childNodes[i];
						break;
					}
				}
			}
			if(skew){
				skew.on = "f";
				var mt = matrix.xx.toFixed(8) + " " + matrix.xy.toFixed(8) + " " +
					matrix.yx.toFixed(8) + " " + matrix.yy.toFixed(8) + " 0 0",
					offset = Math.floor(matrix.dx).toFixed() + "px " + Math.floor(matrix.dy).toFixed() + "px",
					s = this.rawNode.style,
					l = parseFloat(s.left),
					t = parseFloat(s.top),
					w = parseFloat(s.width),
					h = parseFloat(s.height);
				if(isNaN(l)) l = 0;
				if(isNaN(t)) t = 0;
				if(isNaN(w)) w = 1;
				if(isNaN(h)) h = 1;
				var origin = (-l / w - 0.5).toFixed(8) + " " + (-t / h - 0.5).toFixed(8);
				skew.matrix =  mt;
				skew.origin = origin;
				skew.offset = offset;
				skew.on = true;
			}
			return this;";s:7:"private";b:1;s:7:"summary";s:0:"";}s:21:".Shape.fillStyle.type";a:2:{s:8:"instance";s:6:".Shape";s:7:"summary";s:0:"";}s:21:".Shape._setDimensions";a:7:{s:9:"prototype";s:6:".Shape";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:5:"width";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:15:"width in pixels";}s:6:"height";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:7670:"dojo.provide("dojox.gfx.vml");


dojo.require("dojox.gfx._base");
dojo.require("dojox.gfx.shape");
dojo.require("dojox.gfx.path");
dojo.require("dojox.gfx.arc");


(function(){
	var g = dojox.gfx, m = g.matrix, vml = g.vml, sh = g.shape;


	// dojox.gfx.vml.xmlns: String: a VML's namespace
	vml.xmlns = "urn:schemas-microsoft-com:vml";


	// dojox.gfx.vml.text_alignment: Object: mapping from SVG alignment to VML alignment
	vml.text_alignment = {start: "left", middle: "center", end: "right"};


	vml._parseFloat = function(str) {
		// summary: a helper function to parse VML-specific floating-point values
		// str: String: a representation of a floating-point number
		return str.match(/^\d+f$/i) ? parseInt(str) / 65536 : parseFloat(str);	// Number
	};


	vml._bool = {"t": 1, "true": 1};


	dojo.extend(g.Shape, {
		// summary: VML-specific implementation of dojox.gfx.Shape methods


		setFill: function(fill){
			// summary: sets a fill object (VML)
			// fill: Object: a fill object
			//	(see dojox.gfx.defaultLinearGradient,
			//	dojox.gfx.defaultRadialGradient,
			//	dojox.gfx.defaultPattern,
			//	or dojo.Color)


			if(!fill){
				// don't fill
				this.fillStyle = null;
				this.rawNode.filled = "f";
				return this;
			}
			var i, f, fo, a, s;
			if(typeof fill == "object" && "type" in fill){
				// gradient
				switch(fill.type){
					case "linear":
						var matrix = this._getRealMatrix();
						s = [];
						f = g.makeParameters(g.defaultLinearGradient, fill);
						a = f.colors;
						this.fillStyle = f;
						dojo.forEach(a, function(v, i, a){
							a[i].color = g.normalizeColor(v.color);
						});
						if(a[0].offset > 0){
							s.push("0 " + a[0].color.toHex());
						}
						for(i = 0; i < a.length; ++i){
							s.push(a[i].offset.toFixed(8) + " " + a[i].color.toHex());
						}
						i = a.length - 1;
						if(a[i].offset < 1){
							s.push("1 " + a[i].color.toHex());
						}
						fo = this.rawNode.fill;
						fo.colors.value = s.join(";");
						fo.method = "sigma";
						fo.type = "gradient";
						var fc1 = matrix ? m.multiplyPoint(matrix, f.x1, f.y1) : {x: f.x1, y: f.y1},
							fc2 = matrix ? m.multiplyPoint(matrix, f.x2, f.y2) : {x: f.x2, y: f.y2};
						fo.angle = (m._radToDeg(Math.atan2(fc2.x - fc1.x, fc2.y - fc1.y)) + 180) % 360;
						fo.on = true;
						break;
					case "radial":
						f = g.makeParameters(g.defaultRadialGradient, fill);
						this.fillStyle = f;
						var l = parseFloat(this.rawNode.style.left),
							t = parseFloat(this.rawNode.style.top),
							w = parseFloat(this.rawNode.style.width),
							h = parseFloat(this.rawNode.style.height),
							c = isNaN(w) ? 1 : 2 * f.r / w;
						a = [];
						// add a color at the offset 0 (1 in VML coordinates)
						if(f.colors[0].offset > 0){
							a.push({offset: 1, color: g.normalizeColor(f.colors[0].color)});
						}
						// massage colors
						dojo.forEach(f.colors, function(v, i){
							a.push({offset: 1 - v.offset * c, color: g.normalizeColor(v.color)});
						});
						i = a.length - 1;
						while(i >= 0 && a[i].offset < 0){ --i; }
						if(i < a.length - 1){
							// correct excessive colors
							var q = a[i], p = a[i + 1];
							p.color = dojo.blendColors(q.color, p.color, q.offset / (q.offset - p.offset));
							p.offset = 0;
							while(a.length - i > 2) a.pop();
						}
						// set colors
						i = a.length - 1, s = [];
						if(a[i].offset > 0){
							s.push("0 " + a[i].color.toHex());
						}
						for(; i >= 0; --i){
							s.push(a[i].offset.toFixed(8) + " " + a[i].color.toHex());
						}
						fo = this.rawNode.fill;
						fo.colors.value = s.join(";");
						fo.method = "sigma";
						fo.type = "gradientradial";
						if(isNaN(w) || isNaN(h) || isNaN(l) || isNaN(t)){
							fo.focusposition = "0.5 0.5";
						}else{
							fo.focusposition = ((f.cx - l) / w).toFixed(8) + " " + ((f.cy - t) / h).toFixed(8);
						}
						fo.focussize = "0 0";
						fo.on = true;
						break;
					case "pattern":
						f = g.makeParameters(g.defaultPattern, fill);
						this.fillStyle = f;
						fo = this.rawNode.fill;
						fo.type = "tile";
						fo.src = f.src;
						if(f.width && f.height){
							// in points
							fo.size.x = g.px2pt(f.width);
							fo.size.y = g.px2pt(f.height);
						}
						fo.alignShape = "f";
						fo.position.x = 0;
						fo.position.y = 0;
						fo.origin.x = f.width  ? f.x / f.width  : 0;
						fo.origin.y = f.height ? f.y / f.height : 0;
						fo.on = true;
						break;
				}
				this.rawNode.fill.opacity = 1;
				return this;
			}
			// color object
			this.fillStyle = g.normalizeColor(fill);
			fo = this.rawNode.fill;
			if(!fo){
				fo = this.rawNode.ownerDocument.createElement("v:fill");
			}
			fo.method = "any";
			fo.type = "solid";
			fo.opacity = this.fillStyle.a;
			this.rawNode.fillcolor = this.fillStyle.toHex();
			this.rawNode.filled = true;
			return this;	// self
		},


		setStroke: function(stroke){
			// summary: sets a stroke object (VML)
			// stroke: Object: a stroke object
			//	(see dojox.gfx.defaultStroke)


			if(!stroke){
				// don't stroke
				this.strokeStyle = null;
				this.rawNode.stroked = "f";
				return this;
			}
			// normalize the stroke
			if(typeof stroke == "string" || dojo.isArray(stroke) || stroke instanceof dojo.Color){
				stroke = {color: stroke};
			}
			var s = this.strokeStyle = g.makeParameters(g.defaultStroke, stroke);
			s.color = g.normalizeColor(s.color);
			// generate attributes
			var rn = this.rawNode;
			rn.stroked = true;
			rn.strokecolor = s.color.toCss();
			rn.strokeweight = s.width + "px";	// TODO: should we assume that the width is always in pixels?
			if(rn.stroke) {
				rn.stroke.opacity = s.color.a;
				rn.stroke.endcap = this._translate(this._capMap, s.cap);
				if(typeof s.join == "number") {
					rn.stroke.joinstyle = "miter";
					rn.stroke.miterlimit = s.join;
				}else{
					rn.stroke.joinstyle = s.join;
					// rn.stroke.miterlimit = s.width;
				}
				rn.stroke.dashstyle = s.style == "none" ? "Solid" : s.style;
			}
			return this;	// self
		},


		_capMap: { butt: 'flat' },
		_capMapReversed: { flat: 'butt' },


		_translate: function(dict, value) {
			return (value in dict) ? dict[value] : value;
		},


		_applyTransform: function() {
			if(this.fillStyle && this.fillStyle.type == "linear"){
				this.setFill(this.fillStyle);
			}
			var matrix = this._getRealMatrix();
			if(!matrix) return this;
			var skew = this.rawNode.skew;
			if(typeof skew == "undefined"){
				for(var i = 0; i < this.rawNode.childNodes.length; ++i){
					if(this.rawNode.childNodes[i].tagName == "skew"){
						skew = this.rawNode.childNodes[i];
						break;
					}
				}
			}
			if(skew){
				skew.on = "f";
				var mt = matrix.xx.toFixed(8) + " " + matrix.xy.toFixed(8) + " " +
					matrix.yx.toFixed(8) + " " + matrix.yy.toFixed(8) + " 0 0",
					offset = Math.floor(matrix.dx).toFixed() + "px " + Math.floor(matrix.dy).toFixed() + "px",
					s = this.rawNode.style,
					l = parseFloat(s.left),
					t = parseFloat(s.top),
					w = parseFloat(s.width),
					h = parseFloat(s.height);
				if(isNaN(l)) l = 0;
				if(isNaN(t)) t = 0;
				if(isNaN(w)) w = 1;
				if(isNaN(h)) h = 1;
				var origin = (-l / w - 0.5).toFixed(8) + " " + (-t / h - 0.5).toFixed(8);
				skew.matrix =  mt;
				skew.origin = origin;
				skew.offset = offset;
				skew.on = true;
			}
			return this;
		},


		_setDimensions: function(width, height){
			// summary: sets the width and height of the rawNode,
			//	if the surface sixe has been changed
			// width: String: width in pixels
			// height: String: height in pixels


			// default implementation does nothing
			return this; // self";s:7:"summary";s:78:"sets the width and height of the rawNode,
if the surface sixe has been changed";s:7:"returns";s:11:"Number|self";s:7:"private";b:1;}s:17:".Shape.setRawNode";a:5:{s:9:"prototype";s:6:".Shape";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:7:"rawNode";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:78:"			rawNode.stroked = "f";
			rawNode.filled  = "f";
			this.rawNode = rawNode;";s:7:"summary";s:158:"assigns and clears the underlying node that will represent this
shape. Once set, transforms, gradients, etc, can be applied.
(no fill &amp; stroke by default)";}s:14:".Shape.rawNode";a:2:{s:8:"instance";s:6:".Shape";s:7:"summary";s:0:"";}s:19:".Shape._moveToFront";a:5:{s:9:"prototype";s:6:".Shape";s:4:"type";s:8:"Function";s:6:"source";s:69:"			this.rawNode.parentNode.appendChild(this.rawNode);
			return this;";s:7:"summary";s:59:"moves a shape to front of its parent's list of shapes (VML)";s:7:"private";b:1;}s:18:".Shape._moveToBack";a:5:{s:9:"prototype";s:6:".Shape";s:4:"type";s:8:"Function";s:6:"source";s:231:"			var r = this.rawNode, p = r.parentNode, n = p.firstChild;
			p.insertBefore(r, n);
			if(n.tagName == "rect"){
				// surface has a background rectangle, which position should be preserved
				n.swapNode(r);
			}
			return this;";s:7:"summary";s:58:"moves a shape to back of its parent's list of shapes (VML)";s:7:"private";b:1;}s:21:".Shape._getRealMatrix";a:6:{s:9:"prototype";s:6:".Shape";s:4:"type";s:8:"Function";s:6:"source";s:115:"			return this.parentMatrix ? new g.Matrix2D([this.parentMatrix, this.matrix]) : this.matrix;	// dojox.gfx.Matrix2D";s:7:"summary";s:120:"returns the cumulative (&quot;real&quot;) transformation matrix
by combining the shape's matrix with its parent's matrix";s:7:"returns";s:18:"dojox.gfx.Matrix2D";s:7:"private";b:1;}s:6:".Group";a:2:{s:6:"mixins";a:1:{s:9:"prototype";a:2:{i:0;s:13:"vml.Container";i:1;s:10:"sh.Creator";}}s:7:"summary";s:0:"";}s:8:".Surface";a:2:{s:6:"mixins";a:1:{s:9:"prototype";a:2:{i:0;s:13:"vml.Container";i:1;s:10:"sh.Creator";}}s:7:"summary";s:0:"";}s:20:".Creator.createGroup";a:4:{s:4:"type";s:8:"Function";s:6:"source";s:455:"			var node = this.createObject(g.Group, null);	// dojox.gfx.Group
			// create a background rectangle, which is required to show all other shapes
			var r = node.rawNode.ownerDocument.createElement("v:rect");
			r.style.left = r.style.top = 0;
			r.style.width  = node.rawNode.style.width;
			r.style.height = node.rawNode.style.height;
			r.filled = r.stroked = "f";
			node.rawNode.appendChild(r);
			node.bgNode = r;
			return node;	// dojox.gfx.Group";s:7:"summary";s:25:"creates a VML group shape";s:7:"returns";s:15:"dojox.gfx.Group";}s:20:".Creator.createImage";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:5:"image";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:44:"an image object (see dojox.gfx.defaultImage)";}}s:6:"source";s:481:"			if(!this.rawNode) return null;
			var shape = new g.Image(),
				doc = this.rawNode.ownerDocument,
				node = doc.createElement('v:rect');
			node.stroked = "f";
			node.style.width  = this.rawNode.style.width;
			node.style.height = this.rawNode.style.height;
			var img  = doc.createElement('v:imagedata');
			node.appendChild(img);
			shape.setRawNode(node);
			this.rawNode.appendChild(node);
			shape.setShape(image);
			this.add(shape);
			return shape;	// dojox.gfx.Image";s:7:"summary";s:25:"creates a VML image shape";s:7:"returns";s:15:"dojox.gfx.Image";}s:19:".Creator.createRect";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"rect";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:41:"a path object (see dojox.gfx.defaultRect)";}}s:6:"source";s:338:"			if(!this.rawNode) return null;
			var shape = new g.Rect,
				node = this.rawNode.ownerDocument.createElement("v:roundrect");
			if(dojo.isIE > 7){
				node.style.display = "inline-block";
			}
			shape.setRawNode(node);
			this.rawNode.appendChild(node);
			shape.setShape(rect);
			this.add(shape);
			return shape;	// dojox.gfx.Rect";s:7:"summary";s:25:"creates a rectangle shape";s:7:"returns";s:14:"dojox.gfx.Rect";}s:21:".Creator.createObject";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:9:"shapeType";a:2:{s:4:"type";s:8:"Function";s:7:"summary";s:44:"a class constructor to create an instance of";}s:8:"rawShape";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:125:"properties to be passed in to the classes &quot;setShape&quot; method
overrideSize: Boolean: set the size explicitly, if true";}}s:6:"source";s:479:"			if(!this.rawNode) return null;
			var shape = new shapeType(),
				node = this.rawNode.ownerDocument.createElement('v:' + shapeType.nodeType);
			shape.setRawNode(node);
			this.rawNode.appendChild(node);
			switch(shapeType){
				case g.Group:
				case g.Line:
				case g.Polyline:
				case g.Image:
				case g.Text:
				case g.Path:
				case g.TextPath:
					this._overrideSize(node);
			}
			shape.setShape(rawShape);
			this.add(shape);
			return shape;	// dojox.gfx.Shape";s:7:"summary";s:49:"creates an instance of the passed shapeType class";s:7:"returns";s:15:"dojox.gfx.Shape";}s:22:".Creator._overrideSize";a:5:{s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"node";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:162:"			var s = this.rawNode.style, w = s.width, h = s.height;
			node.style.width  = w;
			node.style.height = h;
			node.coordsize = parseInt(w) + " " + parseInt(h);";s:7:"private";b:1;s:7:"summary";s:0:"";}s:13:"dojox.gfx.vml";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:9:"dojox.gfx";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:5:"dojox";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}