Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Side by Side Diff: third_party/WebKit/Source/core/svg/SVGEllipseElement.cpp

Issue 2485663002: Store CSSPropertyID in SVGAnimatedPropertyBase (Closed)
Patch Set: Add missing case Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org>
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 12 matching lines...) Expand all
23 #include "core/dom/StyleChangeReason.h" 23 #include "core/dom/StyleChangeReason.h"
24 #include "core/layout/svg/LayoutSVGEllipse.h" 24 #include "core/layout/svg/LayoutSVGEllipse.h"
25 #include "core/svg/SVGLength.h" 25 #include "core/svg/SVGLength.h"
26 26
27 namespace blink { 27 namespace blink {
28 28
29 inline SVGEllipseElement::SVGEllipseElement(Document& document) 29 inline SVGEllipseElement::SVGEllipseElement(Document& document)
30 : SVGGeometryElement(SVGNames::ellipseTag, document), 30 : SVGGeometryElement(SVGNames::ellipseTag, document),
31 m_cx(SVGAnimatedLength::create(this, 31 m_cx(SVGAnimatedLength::create(this,
32 SVGNames::cxAttr, 32 SVGNames::cxAttr,
33 SVGLength::create(SVGLengthMode::Width))), 33 SVGLength::create(SVGLengthMode::Width),
34 CSSPropertyCx)),
34 m_cy(SVGAnimatedLength::create(this, 35 m_cy(SVGAnimatedLength::create(this,
35 SVGNames::cyAttr, 36 SVGNames::cyAttr,
36 SVGLength::create(SVGLengthMode::Height))), 37 SVGLength::create(SVGLengthMode::Height),
38 CSSPropertyCy)),
37 m_rx(SVGAnimatedLength::create(this, 39 m_rx(SVGAnimatedLength::create(this,
38 SVGNames::rxAttr, 40 SVGNames::rxAttr,
39 SVGLength::create(SVGLengthMode::Width))), 41 SVGLength::create(SVGLengthMode::Width),
40 m_ry( 42 CSSPropertyRx)),
41 SVGAnimatedLength::create(this, 43 m_ry(SVGAnimatedLength::create(this,
42 SVGNames::ryAttr, 44 SVGNames::ryAttr,
43 SVGLength::create(SVGLengthMode::Height))) { 45 SVGLength::create(SVGLengthMode::Height),
46 CSSPropertyRy)) {
44 addToPropertyMap(m_cx); 47 addToPropertyMap(m_cx);
45 addToPropertyMap(m_cy); 48 addToPropertyMap(m_cy);
46 addToPropertyMap(m_rx); 49 addToPropertyMap(m_rx);
47 addToPropertyMap(m_ry); 50 addToPropertyMap(m_ry);
48 } 51 }
49 52
50 DEFINE_TRACE(SVGEllipseElement) { 53 DEFINE_TRACE(SVGEllipseElement) {
51 visitor->trace(m_cx); 54 visitor->trace(m_cx);
52 visitor->trace(m_cy); 55 visitor->trace(m_cy);
53 visitor->trace(m_rx); 56 visitor->trace(m_rx);
(...skipping 26 matching lines...) Expand all
80 lengthContext.valueForLength(svgStyle.cx(), style, SVGLengthMode::Width) - 83 lengthContext.valueForLength(svgStyle.cx(), style, SVGLengthMode::Width) -
81 rx, 84 rx,
82 lengthContext.valueForLength(svgStyle.cy(), style, 85 lengthContext.valueForLength(svgStyle.cy(), style,
83 SVGLengthMode::Height) - 86 SVGLengthMode::Height) -
84 ry, 87 ry,
85 rx * 2, ry * 2)); 88 rx * 2, ry * 2));
86 89
87 return path; 90 return path;
88 } 91 }
89 92
90 bool SVGEllipseElement::isPresentationAttribute(
91 const QualifiedName& attrName) const {
92 if (attrName == SVGNames::cxAttr || attrName == SVGNames::cyAttr ||
93 attrName == SVGNames::rxAttr || attrName == SVGNames::ryAttr)
94 return true;
95 return SVGGeometryElement::isPresentationAttribute(attrName);
96 }
97
98 bool SVGEllipseElement::isPresentationAttributeWithSVGDOM(
99 const QualifiedName& attrName) const {
100 if (attrName == SVGNames::cxAttr || attrName == SVGNames::cyAttr ||
101 attrName == SVGNames::rxAttr || attrName == SVGNames::ryAttr)
102 return true;
103 return SVGGeometryElement::isPresentationAttributeWithSVGDOM(attrName);
104 }
105
106 void SVGEllipseElement::collectStyleForPresentationAttribute( 93 void SVGEllipseElement::collectStyleForPresentationAttribute(
107 const QualifiedName& name, 94 const QualifiedName& name,
108 const AtomicString& value, 95 const AtomicString& value,
109 MutableStylePropertySet* style) { 96 MutableStylePropertySet* style) {
110 SVGAnimatedPropertyBase* property = propertyFromAttribute(name); 97 SVGAnimatedPropertyBase* property = propertyFromAttribute(name);
111 if (property == m_cx) 98 if (property == m_cx)
112 addPropertyToPresentationAttributeStyle( 99 addPropertyToPresentationAttributeStyle(
113 style, CSSPropertyCx, m_cx->currentValue()->asCSSPrimitiveValue()); 100 style, CSSPropertyCx, m_cx->currentValue()->asCSSPrimitiveValue());
114 else if (property == m_cy) 101 else if (property == m_cy)
115 addPropertyToPresentationAttributeStyle( 102 addPropertyToPresentationAttributeStyle(
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 m_cy->currentValue()->isRelative() || 139 m_cy->currentValue()->isRelative() ||
153 m_rx->currentValue()->isRelative() || 140 m_rx->currentValue()->isRelative() ||
154 m_ry->currentValue()->isRelative(); 141 m_ry->currentValue()->isRelative();
155 } 142 }
156 143
157 LayoutObject* SVGEllipseElement::createLayoutObject(const ComputedStyle&) { 144 LayoutObject* SVGEllipseElement::createLayoutObject(const ComputedStyle&) {
158 return new LayoutSVGEllipse(this); 145 return new LayoutSVGEllipse(this);
159 } 146 }
160 147
161 } // namespace blink 148 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/svg/SVGEllipseElement.h ('k') | third_party/WebKit/Source/core/svg/SVGForeignObjectElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698