24 #include "wtf/Platform.h"
30 #include "RenderPath.h"
36 SVGLineElement::SVGLineElement(
const QualifiedName& tagName, Document* doc)
37 : SVGStyledTransformableElement(tagName, doc)
40 , SVGExternalResourcesRequired()
41 , m_x1(this, LengthModeWidth)
42 , m_y1(this, LengthModeHeight)
43 , m_x2(this, LengthModeWidth)
44 , m_y2(this, LengthModeHeight)
48 SVGLineElement::~SVGLineElement()
52 ANIMATED_PROPERTY_DEFINITIONS(SVGLineElement, SVGLength, Length, length, X1, x1,
SVGNames::x1Attr, m_x1)
53 ANIMATED_PROPERTY_DEFINITIONS(SVGLineElement, SVGLength, Length, length, Y1, y1, SVGNames::
y1Attr, m_y1)
54 ANIMATED_PROPERTY_DEFINITIONS(SVGLineElement, SVGLength, Length, length, X2, x2, SVGNames::
x2Attr, m_x2)
55 ANIMATED_PROPERTY_DEFINITIONS(SVGLineElement, SVGLength, Length, length, Y2, y2, SVGNames::
y2Attr, m_y2)
57 void SVGLineElement::parseMappedAttribute(MappedAttribute* attr)
60 setX1BaseValue(SVGLength(
this, LengthModeWidth, attr->value()));
62 setY1BaseValue(SVGLength(
this, LengthModeHeight, attr->value()));
64 setX2BaseValue(SVGLength(
this, LengthModeWidth, attr->value()));
66 setY2BaseValue(SVGLength(
this, LengthModeHeight, attr->value()));
69 if (SVGTests::parseMappedAttribute(attr))
71 if (SVGLangSpace::parseMappedAttribute(attr))
73 if (SVGExternalResourcesRequired::parseMappedAttribute(attr))
75 SVGStyledTransformableElement::parseMappedAttribute(attr);
79 void SVGLineElement::svgAttributeChanged(
const QualifiedName& attrName)
81 SVGStyledTransformableElement::svgAttributeChanged(attrName);
88 SVGTests::isKnownAttribute(attrName) ||
89 SVGLangSpace::isKnownAttribute(attrName) ||
90 SVGExternalResourcesRequired::isKnownAttribute(attrName) ||
91 SVGStyledTransformableElement::isKnownAttribute(attrName))
92 renderer()->setNeedsLayout(
true);
95 Path SVGLineElement::toPathData()
const
97 return Path::createLine(FloatPoint(x1().value(), y1().value()),
98 FloatPoint(x2().value(), y2().value()));
101 bool SVGLineElement::hasRelativeValues()
const
103 return (x1().isRelative() || y1().isRelative() ||
104 x2().isRelative() || y2().isRelative());
109 #endif // ENABLE(SVG)
DOM::QualifiedName x1Attr
DOM::QualifiedName y1Attr
DOM::QualifiedName x2Attr
DOM::QualifiedName y2Attr