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

Side by Side Diff: third_party/WebKit/Source/core/svg/SVGMaskElement.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 * Copyright (C) 2005 Alexander Kellett <lypanov@kde.org> 4 * Copyright (C) 2005 Alexander Kellett <lypanov@kde.org>
5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
6 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 15 matching lines...) Expand all
26 #include "core/dom/StyleChangeReason.h" 26 #include "core/dom/StyleChangeReason.h"
27 #include "core/layout/svg/LayoutSVGResourceMasker.h" 27 #include "core/layout/svg/LayoutSVGResourceMasker.h"
28 28
29 namespace blink { 29 namespace blink {
30 30
31 inline SVGMaskElement::SVGMaskElement(Document& document) 31 inline SVGMaskElement::SVGMaskElement(Document& document)
32 : SVGElement(SVGNames::maskTag, document), 32 : SVGElement(SVGNames::maskTag, document),
33 SVGTests(this), 33 SVGTests(this),
34 m_x(SVGAnimatedLength::create(this, 34 m_x(SVGAnimatedLength::create(this,
35 SVGNames::xAttr, 35 SVGNames::xAttr,
36 SVGLength::create(SVGLengthMode::Width))), 36 SVGLength::create(SVGLengthMode::Width),
37 CSSPropertyX)),
37 m_y(SVGAnimatedLength::create(this, 38 m_y(SVGAnimatedLength::create(this,
38 SVGNames::yAttr, 39 SVGNames::yAttr,
39 SVGLength::create(SVGLengthMode::Height))), 40 SVGLength::create(SVGLengthMode::Height),
40 m_width( 41 CSSPropertyY)),
41 SVGAnimatedLength::create(this, 42 m_width(SVGAnimatedLength::create(this,
42 SVGNames::widthAttr, 43 SVGNames::widthAttr,
43 SVGLength::create(SVGLengthMode::Width))), 44 SVGLength::create(SVGLengthMode::Width),
45 CSSPropertyWidth)),
44 m_height( 46 m_height(
45 SVGAnimatedLength::create(this, 47 SVGAnimatedLength::create(this,
46 SVGNames::heightAttr, 48 SVGNames::heightAttr,
47 SVGLength::create(SVGLengthMode::Height))), 49 SVGLength::create(SVGLengthMode::Height),
50 CSSPropertyHeight)),
48 m_maskUnits(SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::create( 51 m_maskUnits(SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::create(
49 this, 52 this,
50 SVGNames::maskUnitsAttr, 53 SVGNames::maskUnitsAttr,
51 SVGUnitTypes::kSvgUnitTypeObjectboundingbox)), 54 SVGUnitTypes::kSvgUnitTypeObjectboundingbox)),
52 m_maskContentUnits( 55 m_maskContentUnits(
53 SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::create( 56 SVGAnimatedEnumeration<SVGUnitTypes::SVGUnitType>::create(
54 this, 57 this,
55 SVGNames::maskContentUnitsAttr, 58 SVGNames::maskContentUnitsAttr,
56 SVGUnitTypes::kSvgUnitTypeUserspaceonuse)) { 59 SVGUnitTypes::kSvgUnitTypeUserspaceonuse)) {
57 // Spec: If the x/y attribute is not specified, the effect is as if a value of 60 // Spec: If the x/y attribute is not specified, the effect is as if a value of
(...skipping 20 matching lines...) Expand all
78 visitor->trace(m_width); 81 visitor->trace(m_width);
79 visitor->trace(m_height); 82 visitor->trace(m_height);
80 visitor->trace(m_maskUnits); 83 visitor->trace(m_maskUnits);
81 visitor->trace(m_maskContentUnits); 84 visitor->trace(m_maskContentUnits);
82 SVGElement::trace(visitor); 85 SVGElement::trace(visitor);
83 SVGTests::trace(visitor); 86 SVGTests::trace(visitor);
84 } 87 }
85 88
86 DEFINE_NODE_FACTORY(SVGMaskElement) 89 DEFINE_NODE_FACTORY(SVGMaskElement)
87 90
88 bool SVGMaskElement::isPresentationAttribute(
89 const QualifiedName& attrName) const {
90 if (attrName == SVGNames::xAttr || attrName == SVGNames::yAttr ||
91 attrName == SVGNames::widthAttr || attrName == SVGNames::heightAttr)
92 return true;
93 return SVGElement::isPresentationAttribute(attrName);
94 }
95
96 bool SVGMaskElement::isPresentationAttributeWithSVGDOM(
97 const QualifiedName& attrName) const {
98 if (attrName == SVGNames::xAttr || attrName == SVGNames::yAttr ||
99 attrName == SVGNames::widthAttr || attrName == SVGNames::heightAttr)
100 return true;
101 return SVGElement::isPresentationAttributeWithSVGDOM(attrName);
102 }
103
104 void SVGMaskElement::collectStyleForPresentationAttribute( 91 void SVGMaskElement::collectStyleForPresentationAttribute(
105 const QualifiedName& name, 92 const QualifiedName& name,
106 const AtomicString& value, 93 const AtomicString& value,
107 MutableStylePropertySet* style) { 94 MutableStylePropertySet* style) {
108 SVGAnimatedPropertyBase* property = propertyFromAttribute(name); 95 SVGAnimatedPropertyBase* property = propertyFromAttribute(name);
109 if (property == m_x) 96 if (property == m_x)
110 addPropertyToPresentationAttributeStyle( 97 addPropertyToPresentationAttributeStyle(
111 style, CSSPropertyX, m_x->currentValue()->asCSSPrimitiveValue()); 98 style, CSSPropertyX, m_x->currentValue()->asCSSPrimitiveValue());
112 else if (property == m_y) 99 else if (property == m_y)
113 addPropertyToPresentationAttributeStyle( 100 addPropertyToPresentationAttributeStyle(
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 } 155 }
169 156
170 bool SVGMaskElement::selfHasRelativeLengths() const { 157 bool SVGMaskElement::selfHasRelativeLengths() const {
171 return m_x->currentValue()->isRelative() || 158 return m_x->currentValue()->isRelative() ||
172 m_y->currentValue()->isRelative() || 159 m_y->currentValue()->isRelative() ||
173 m_width->currentValue()->isRelative() || 160 m_width->currentValue()->isRelative() ||
174 m_height->currentValue()->isRelative(); 161 m_height->currentValue()->isRelative();
175 } 162 }
176 163
177 } // namespace blink 164 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/svg/SVGMaskElement.h ('k') | third_party/WebKit/Source/core/svg/SVGPathElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698