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

Side by Side Diff: Source/core/svg/SVGRadialGradientElement.cpp

Issue 141793002: Allow determining if an SVG value has been specified (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase again. Created 6 years, 11 months 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) 2008 Eric Seidel <eric@webkit.org> 4 * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
5 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org> 5 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org>
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 renderer->invalidateCacheAndMarkForLayout(); 125 renderer->invalidateCacheAndMarkForLayout();
126 } 126 }
127 127
128 RenderObject* SVGRadialGradientElement::createRenderer(RenderStyle*) 128 RenderObject* SVGRadialGradientElement::createRenderer(RenderStyle*)
129 { 129 {
130 return new RenderSVGResourceRadialGradient(this); 130 return new RenderSVGResourceRadialGradient(this);
131 } 131 }
132 132
133 static void setGradientAttributes(SVGGradientElement* element, RadialGradientAtt ributes& attributes, bool isRadial = true) 133 static void setGradientAttributes(SVGGradientElement* element, RadialGradientAtt ributes& attributes, bool isRadial = true)
134 { 134 {
135 if (!attributes.hasSpreadMethod() && element->hasAttribute(SVGNames::spreadM ethodAttr)) 135 if (!attributes.hasSpreadMethod() && element->spreadMethodSpecified())
136 attributes.setSpreadMethod(element->spreadMethodCurrentValue()); 136 attributes.setSpreadMethod(element->spreadMethodCurrentValue());
137 137
138 if (!attributes.hasGradientUnits() && element->hasAttribute(SVGNames::gradie ntUnitsAttr)) 138 if (!attributes.hasGradientUnits() && element->gradientUnitsSpecified())
139 attributes.setGradientUnits(element->gradientUnitsCurrentValue()); 139 attributes.setGradientUnits(element->gradientUnitsCurrentValue());
140 140
141 if (!attributes.hasGradientTransform() && element->hasAttribute(SVGNames::gr adientTransformAttr)) { 141 if (!attributes.hasGradientTransform() && element->gradientTransformSpecifie d()) {
142 AffineTransform transform; 142 AffineTransform transform;
143 element->gradientTransformCurrentValue().concatenate(transform); 143 element->gradientTransformCurrentValue().concatenate(transform);
144 attributes.setGradientTransform(transform); 144 attributes.setGradientTransform(transform);
145 } 145 }
146 146
147 if (!attributes.hasStops()) { 147 if (!attributes.hasStops()) {
148 const Vector<Gradient::ColorStop>& stops(element->buildStops()); 148 const Vector<Gradient::ColorStop>& stops(element->buildStops());
149 if (!stops.isEmpty()) 149 if (!stops.isEmpty())
150 attributes.setStops(stops); 150 attributes.setStops(stops);
151 } 151 }
152 152
153 if (isRadial) { 153 if (isRadial) {
154 SVGRadialGradientElement* radial = toSVGRadialGradientElement(element); 154 SVGRadialGradientElement* radial = toSVGRadialGradientElement(element);
155 155
156 if (!attributes.hasCx() && element->hasAttribute(SVGNames::cxAttr)) 156 if (!attributes.hasCx() && radial->cx()->isSpecified())
157 attributes.setCx(radial->cx()->currentValue()); 157 attributes.setCx(radial->cx()->currentValue());
158 158
159 if (!attributes.hasCy() && element->hasAttribute(SVGNames::cyAttr)) 159 if (!attributes.hasCy() && radial->cy()->isSpecified())
160 attributes.setCy(radial->cy()->currentValue()); 160 attributes.setCy(radial->cy()->currentValue());
161 161
162 if (!attributes.hasR() && element->hasAttribute(SVGNames::rAttr)) 162 if (!attributes.hasR() && radial->r()->isSpecified())
163 attributes.setR(radial->r()->currentValue()); 163 attributes.setR(radial->r()->currentValue());
164 164
165 if (!attributes.hasFx() && element->hasAttribute(SVGNames::fxAttr)) 165 if (!attributes.hasFx() && radial->fx()->isSpecified())
166 attributes.setFx(radial->fx()->currentValue()); 166 attributes.setFx(radial->fx()->currentValue());
167 167
168 if (!attributes.hasFy() && element->hasAttribute(SVGNames::fyAttr)) 168 if (!attributes.hasFy() && radial->fy()->isSpecified())
169 attributes.setFy(radial->fy()->currentValue()); 169 attributes.setFy(radial->fy()->currentValue());
170 170
171 if (!attributes.hasFr() && element->hasAttribute(SVGNames::frAttr)) 171 if (!attributes.hasFr() && radial->fr()->isSpecified())
172 attributes.setFr(radial->fr()->currentValue()); 172 attributes.setFr(radial->fr()->currentValue());
173 } 173 }
174 } 174 }
175 175
176 bool SVGRadialGradientElement::collectGradientAttributes(RadialGradientAttribute s& attributes) 176 bool SVGRadialGradientElement::collectGradientAttributes(RadialGradientAttribute s& attributes)
177 { 177 {
178 if (!renderer()) 178 if (!renderer())
179 return false; 179 return false;
180 180
181 HashSet<SVGGradientElement*> processedGradients; 181 HashSet<SVGGradientElement*> processedGradients;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 { 218 {
219 return m_cx->currentValue()->isRelative() 219 return m_cx->currentValue()->isRelative()
220 || m_cy->currentValue()->isRelative() 220 || m_cy->currentValue()->isRelative()
221 || m_r->currentValue()->isRelative() 221 || m_r->currentValue()->isRelative()
222 || m_fx->currentValue()->isRelative() 222 || m_fx->currentValue()->isRelative()
223 || m_fy->currentValue()->isRelative() 223 || m_fy->currentValue()->isRelative()
224 || m_fr->currentValue()->isRelative(); 224 || m_fr->currentValue()->isRelative();
225 } 225 }
226 226
227 } 227 }
OLDNEW
« no previous file with comments | « Source/core/svg/SVGPatternElement.cpp ('k') | Source/core/svg/properties/NewSVGAnimatedProperty.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698