void writeSVGContainer(TextStream& ts, const RenderObject& container, int indent) { writeStandardPrefix(ts, container, indent); writePositionAndStyle(ts, container); ts << "\n"; writeChildren(ts, container, indent); }
void writeSVGImage(TextStream& ts, const RenderSVGImage& image, int indent) { writeStandardPrefix(ts, image, indent); writePositionAndStyle(ts, image); ts << "\n"; writeResources(ts, image, indent); }
void writeSVGContainer(TextStream& ts, const RenderObject& container, int indent) { // Currently RenderSVGResourceFilterPrimitive has no meaningful output. if (container.isSVGResourceFilterPrimitive()) return; writeStandardPrefix(ts, container, indent); writePositionAndStyle(ts, container); ts << "\n"; writeResources(ts, container, indent); writeChildren(ts, container, indent); }
static TextStream& operator<<(TextStream& ts, const RenderSVGShape& shape) { writePositionAndStyle(ts, shape); ASSERT(shape.node()->isSVGElement()); SVGElement* svgElement = toSVGElement(shape.node()); SVGLengthContext lengthContext(svgElement); if (svgElement->hasTagName(SVGNames::rectTag)) { SVGRectElement* element = static_cast<SVGRectElement*>(svgElement); writeNameValuePair(ts, "x", element->x().value(lengthContext)); writeNameValuePair(ts, "y", element->y().value(lengthContext)); writeNameValuePair(ts, "width", element->width().value(lengthContext)); writeNameValuePair(ts, "height", element->height().value(lengthContext)); } else if (svgElement->hasTagName(SVGNames::lineTag)) { SVGLineElement* element = static_cast<SVGLineElement*>(svgElement); writeNameValuePair(ts, "x1", element->x1().value(lengthContext)); writeNameValuePair(ts, "y1", element->y1().value(lengthContext)); writeNameValuePair(ts, "x2", element->x2().value(lengthContext)); writeNameValuePair(ts, "y2", element->y2().value(lengthContext)); } else if (svgElement->hasTagName(SVGNames::ellipseTag)) { SVGEllipseElement* element = static_cast<SVGEllipseElement*>(svgElement); writeNameValuePair(ts, "cx", element->cx().value(lengthContext)); writeNameValuePair(ts, "cy", element->cy().value(lengthContext)); writeNameValuePair(ts, "rx", element->rx().value(lengthContext)); writeNameValuePair(ts, "ry", element->ry().value(lengthContext)); } else if (svgElement->hasTagName(SVGNames::circleTag)) { SVGCircleElement* element = static_cast<SVGCircleElement*>(svgElement); writeNameValuePair(ts, "cx", element->cx().value(lengthContext)); writeNameValuePair(ts, "cy", element->cy().value(lengthContext)); writeNameValuePair(ts, "r", element->r().value(lengthContext)); } else if (svgElement->hasTagName(SVGNames::polygonTag) || svgElement->hasTagName(SVGNames::polylineTag)) { SVGPolyElement* element = static_cast<SVGPolyElement*>(svgElement); writeNameAndQuotedValue(ts, "points", element->pointList().valueAsString()); } else if (svgElement->hasTagName(SVGNames::pathTag)) { SVGPathElement* element = toSVGPathElement(svgElement); String pathString; // FIXME: We should switch to UnalteredParsing here - this will affect the path dumping output of dozens of tests. buildStringFromByteStream(element->pathByteStream(), pathString, NormalizedParsing); writeNameAndQuotedValue(ts, "data", pathString); } else ASSERT_NOT_REACHED(); return ts; }
static TextStream& operator<<(TextStream& ts, const LayoutSVGShape& shape) { writePositionAndStyle(ts, shape); SVGElement* svgElement = shape.element(); ASSERT(svgElement); SVGLengthContext lengthContext(svgElement); if (isSVGRectElement(*svgElement)) { SVGRectElement& element = toSVGRectElement(*svgElement); writeNameValuePair(ts, "x", element.x()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "y", element.y()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "width", element.width()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "height", element.height()->currentValue()->value(lengthContext)); } else if (isSVGLineElement(*svgElement)) { SVGLineElement& element = toSVGLineElement(*svgElement); writeNameValuePair(ts, "x1", element.x1()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "y1", element.y1()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "x2", element.x2()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "y2", element.y2()->currentValue()->value(lengthContext)); } else if (isSVGEllipseElement(*svgElement)) { SVGEllipseElement& element = toSVGEllipseElement(*svgElement); writeNameValuePair(ts, "cx", element.cx()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "cy", element.cy()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "rx", element.rx()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "ry", element.ry()->currentValue()->value(lengthContext)); } else if (isSVGCircleElement(*svgElement)) { SVGCircleElement& element = toSVGCircleElement(*svgElement); writeNameValuePair(ts, "cx", element.cx()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "cy", element.cy()->currentValue()->value(lengthContext)); writeNameValuePair(ts, "r", element.r()->currentValue()->value(lengthContext)); } else if (isSVGPolyElement(*svgElement)) { writeNameAndQuotedValue(ts, "points", toSVGPolyElement(*svgElement).points()->currentValue()->valueAsString()); } else if (isSVGPathElement(*svgElement)) { String pathString; // FIXME: We should switch to UnalteredParsing here - this will affect the path dumping output of dozens of tests. buildStringFromByteStream(*toSVGPathElement(*svgElement).pathByteStream(), pathString, NormalizedParsing); writeNameAndQuotedValue(ts, "data", pathString); } else { ASSERT_NOT_REACHED(); } return ts; }
static TextStream& operator<<(TextStream& ts, const RenderSVGShape& shape) { writePositionAndStyle(ts, shape); SVGGraphicsElement& svgElement = shape.graphicsElement(); SVGLengthContext lengthContext(&svgElement); if (isSVGRectElement(svgElement)) { const SVGRectElement& element = toSVGRectElement(svgElement); writeNameValuePair(ts, "x", element.x().value(lengthContext)); writeNameValuePair(ts, "y", element.y().value(lengthContext)); writeNameValuePair(ts, "width", element.width().value(lengthContext)); writeNameValuePair(ts, "height", element.height().value(lengthContext)); } else if (isSVGLineElement(svgElement)) { const SVGLineElement& element = toSVGLineElement(svgElement); writeNameValuePair(ts, "x1", element.x1().value(lengthContext)); writeNameValuePair(ts, "y1", element.y1().value(lengthContext)); writeNameValuePair(ts, "x2", element.x2().value(lengthContext)); writeNameValuePair(ts, "y2", element.y2().value(lengthContext)); } else if (isSVGEllipseElement(svgElement)) { const SVGEllipseElement& element = toSVGEllipseElement(svgElement); writeNameValuePair(ts, "cx", element.cx().value(lengthContext)); writeNameValuePair(ts, "cy", element.cy().value(lengthContext)); writeNameValuePair(ts, "rx", element.rx().value(lengthContext)); writeNameValuePair(ts, "ry", element.ry().value(lengthContext)); } else if (isSVGCircleElement(svgElement)) { const SVGCircleElement& element = toSVGCircleElement(svgElement); writeNameValuePair(ts, "cx", element.cx().value(lengthContext)); writeNameValuePair(ts, "cy", element.cy().value(lengthContext)); writeNameValuePair(ts, "r", element.r().value(lengthContext)); } else if (svgElement.hasTagName(SVGNames::polygonTag) || svgElement.hasTagName(SVGNames::polylineTag)) { const SVGPolyElement& element = toSVGPolyElement(svgElement); writeNameAndQuotedValue(ts, "points", element.pointList().valueAsString()); } else if (isSVGPathElement(svgElement)) { const SVGPathElement& element = toSVGPathElement(svgElement); String pathString; // FIXME: We should switch to UnalteredParsing here - this will affect the path dumping output of dozens of tests. buildStringFromByteStream(element.pathByteStream(), pathString, NormalizedParsing); writeNameAndQuotedValue(ts, "data", pathString); } else ASSERT_NOT_REACHED(); return ts; }
static TextStream& operator<<(TextStream& ts, const RenderSVGRoot& root) { return writePositionAndStyle(ts, root); }
static TextStream& operator<<(TextStream& ts, const RenderPath& path) { writePositionAndStyle(ts, path); writeNameAndQuotedValue(ts, "data", path.path().debugString()); return ts; }
static TextStream& operator<<(TextStream& ts, const RenderSVGContainer& container) { return writePositionAndStyle(ts, container); }