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

Side by Side Diff: Source/core/rendering/style/SVGRenderStyle.h

Issue 112003003: [SVG] SVGLength{,List} migration to new SVG property impl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: revert aggressive svgAttributeChanged, add NeedsRebaseline 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 2004, 2005 Rob Buis <buis@kde.org> 3 2004, 2005 Rob Buis <buis@kde.org>
4 Copyright (C) 2005, 2006 Apple Computer, Inc. 4 Copyright (C) 2005, 2006 Apple Computer, Inc.
5 Copyright (C) Research In Motion Limited 2010. All rights reserved. 5 Copyright (C) Research In Motion Limited 2010. All rights reserved.
6 6
7 This library is free software; you can redistribute it and/or 7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Library General Public 8 modify it under the terms of the GNU Library General Public
9 License as published by the Free Software Foundation; either 9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version. 10 version 2 of the License, or (at your option) any later version.
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 static EGlyphOrientation initialGlyphOrientationHorizontal() { return GO_0DE G; } 72 static EGlyphOrientation initialGlyphOrientationHorizontal() { return GO_0DE G; }
73 static EGlyphOrientation initialGlyphOrientationVertical() { return GO_AUTO; } 73 static EGlyphOrientation initialGlyphOrientationVertical() { return GO_AUTO; }
74 static float initialFillOpacity() { return 1; } 74 static float initialFillOpacity() { return 1; }
75 static SVGPaint::SVGPaintType initialFillPaintType() { return SVGPaint::SVG_ PAINTTYPE_RGBCOLOR; } 75 static SVGPaint::SVGPaintType initialFillPaintType() { return SVGPaint::SVG_ PAINTTYPE_RGBCOLOR; }
76 static Color initialFillPaintColor() { return Color::black; } 76 static Color initialFillPaintColor() { return Color::black; }
77 static String initialFillPaintUri() { return String(); } 77 static String initialFillPaintUri() { return String(); }
78 static float initialStrokeOpacity() { return 1; } 78 static float initialStrokeOpacity() { return 1; }
79 static SVGPaint::SVGPaintType initialStrokePaintType() { return SVGPaint::SV G_PAINTTYPE_NONE; } 79 static SVGPaint::SVGPaintType initialStrokePaintType() { return SVGPaint::SV G_PAINTTYPE_NONE; }
80 static Color initialStrokePaintColor() { return Color(); } 80 static Color initialStrokePaintColor() { return Color(); }
81 static String initialStrokePaintUri() { return String(); } 81 static String initialStrokePaintUri() { return String(); }
82 static Vector<SVGLength> initialStrokeDashArray() { return Vector<SVGLength> (); } 82 static PassRefPtr<SVGLengthList> initialStrokeDashArray() { return SVGLength List::create(); }
83 static float initialStrokeMiterLimit() { return 4; } 83 static float initialStrokeMiterLimit() { return 4; }
84 static float initialStopOpacity() { return 1; } 84 static float initialStopOpacity() { return 1; }
85 static Color initialStopColor() { return Color(0, 0, 0); } 85 static Color initialStopColor() { return Color(0, 0, 0); }
86 static float initialFloodOpacity() { return 1; } 86 static float initialFloodOpacity() { return 1; }
87 static Color initialFloodColor() { return Color(0, 0, 0); } 87 static Color initialFloodColor() { return Color(0, 0, 0); }
88 static Color initialLightingColor() { return Color(255, 255, 255); } 88 static Color initialLightingColor() { return Color(255, 255, 255); }
89 static const AtomicString& initialClipperResource() { return nullAtom; } 89 static const AtomicString& initialClipperResource() { return nullAtom; }
90 static const AtomicString& initialFilterResource() { return nullAtom; } 90 static const AtomicString& initialFilterResource() { return nullAtom; }
91 static const AtomicString& initialMaskerResource() { return nullAtom; } 91 static const AtomicString& initialMaskerResource() { return nullAtom; }
92 static String initialMarkerStartResource() { return String(); } 92 static String initialMarkerStartResource() { return String(); }
93 static String initialMarkerMidResource() { return String(); } 93 static String initialMarkerMidResource() { return String(); }
94 static String initialMarkerEndResource() { return String(); } 94 static String initialMarkerEndResource() { return String(); }
95 static EMaskType initialMaskType() { return MT_LUMINANCE; } 95 static EMaskType initialMaskType() { return MT_LUMINANCE; }
96 static EPaintOrder initialPaintOrder() { return PO_NORMAL; } 96 static EPaintOrder initialPaintOrder() { return PO_NORMAL; }
97 97
98 static SVGLength initialBaselineShiftValue() 98 static PassRefPtr<SVGLength> initialBaselineShiftValue()
99 { 99 {
100 SVGLength length; 100 RefPtr<SVGLength> length = SVGLength::create();
101 length.newValueSpecifiedUnits(LengthTypeNumber, 0, ASSERT_NO_EXCEPTION); 101 length->newValueSpecifiedUnits(LengthTypeNumber, 0);
102 return length; 102 return length.release();
103 } 103 }
104 104
105 static SVGLength initialKerning() 105 static PassRefPtr<SVGLength> initialKerning()
106 { 106 {
107 SVGLength length; 107 RefPtr<SVGLength> length = SVGLength::create();
108 length.newValueSpecifiedUnits(LengthTypeNumber, 0, ASSERT_NO_EXCEPTION); 108 length->newValueSpecifiedUnits(LengthTypeNumber, 0);
109 return length; 109 return length.release();
110 } 110 }
111 111
112 static SVGLength initialStrokeDashOffset() 112 static PassRefPtr<SVGLength> initialStrokeDashOffset()
113 { 113 {
114 SVGLength length; 114 RefPtr<SVGLength> length = SVGLength::create();
115 length.newValueSpecifiedUnits(LengthTypeNumber, 0, ASSERT_NO_EXCEPTION); 115 length->newValueSpecifiedUnits(LengthTypeNumber, 0);
116 return length; 116 return length.release();
117 } 117 }
118 118
119 static SVGLength initialStrokeWidth() 119 static PassRefPtr<SVGLength> initialStrokeWidth()
120 { 120 {
121 SVGLength length; 121 RefPtr<SVGLength> length = SVGLength::create();
122 length.newValueSpecifiedUnits(LengthTypeNumber, 1, ASSERT_NO_EXCEPTION); 122 length->newValueSpecifiedUnits(LengthTypeNumber, 1);
123 return length; 123 return length.release();
124 } 124 }
125 125
126 // SVG CSS Property setters 126 // SVG CSS Property setters
127 void setAlignmentBaseline(EAlignmentBaseline val) { svg_noninherited_flags.f ._alignmentBaseline = val; } 127 void setAlignmentBaseline(EAlignmentBaseline val) { svg_noninherited_flags.f ._alignmentBaseline = val; }
128 void setDominantBaseline(EDominantBaseline val) { svg_noninherited_flags.f._ dominantBaseline = val; } 128 void setDominantBaseline(EDominantBaseline val) { svg_noninherited_flags.f._ dominantBaseline = val; }
129 void setBaselineShift(EBaselineShift val) { svg_noninherited_flags.f._baseli neShift = val; } 129 void setBaselineShift(EBaselineShift val) { svg_noninherited_flags.f._baseli neShift = val; }
130 void setVectorEffect(EVectorEffect val) { svg_noninherited_flags.f._vectorEf fect = val; } 130 void setVectorEffect(EVectorEffect val) { svg_noninherited_flags.f._vectorEf fect = val; }
131 void setBufferedRendering(EBufferedRendering val) { svg_noninherited_flags.f .bufferedRendering = val; } 131 void setBufferedRendering(EBufferedRendering val) { svg_noninherited_flags.f .bufferedRendering = val; }
132 void setCapStyle(LineCap val) { svg_inherited_flags._capStyle = val; } 132 void setCapStyle(LineCap val) { svg_inherited_flags._capStyle = val; }
133 void setClipRule(WindRule val) { svg_inherited_flags._clipRule = val; } 133 void setClipRule(WindRule val) { svg_inherited_flags._clipRule = val; }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 if (applyToVisitedLinkStyle) { 189 if (applyToVisitedLinkStyle) {
190 if (!(stroke->visitedLinkPaintType == type)) 190 if (!(stroke->visitedLinkPaintType == type))
191 stroke.access()->visitedLinkPaintType = type; 191 stroke.access()->visitedLinkPaintType = type;
192 if (!(stroke->visitedLinkPaintColor == color)) 192 if (!(stroke->visitedLinkPaintColor == color))
193 stroke.access()->visitedLinkPaintColor = color; 193 stroke.access()->visitedLinkPaintColor = color;
194 if (!(stroke->visitedLinkPaintUri == uri)) 194 if (!(stroke->visitedLinkPaintUri == uri))
195 stroke.access()->visitedLinkPaintUri = uri; 195 stroke.access()->visitedLinkPaintUri = uri;
196 } 196 }
197 } 197 }
198 198
199 void setStrokeDashArray(const Vector<SVGLength>& obj) 199 void setStrokeDashArray(PassRefPtr<SVGLengthList> obj)
200 { 200 {
201 if (!(stroke->dashArray == obj)) 201 if (!(stroke->dashArray == obj))
202 stroke.access()->dashArray = obj; 202 stroke.access()->dashArray = obj;
203 } 203 }
204 204
205 void setStrokeMiterLimit(float obj) 205 void setStrokeMiterLimit(float obj)
206 { 206 {
207 if (!(stroke->miterLimit == obj)) 207 if (!(stroke->miterLimit == obj))
208 stroke.access()->miterLimit = obj; 208 stroke.access()->miterLimit = obj;
209 } 209 }
210 210
211 void setStrokeWidth(const SVGLength& obj) 211 void setStrokeWidth(PassRefPtr<SVGLength> obj)
212 { 212 {
213 if (!(stroke->width == obj)) 213 if (!(stroke->width == obj))
214 stroke.access()->width = obj; 214 stroke.access()->width = obj;
215 } 215 }
216 216
217 void setStrokeDashOffset(const SVGLength& obj) 217 void setStrokeDashOffset(PassRefPtr<SVGLength> obj)
218 { 218 {
219 if (!(stroke->dashOffset == obj)) 219 if (!(stroke->dashOffset == obj))
220 stroke.access()->dashOffset = obj; 220 stroke.access()->dashOffset = obj;
221 } 221 }
222 222
223 void setKerning(const SVGLength& obj) 223 void setKerning(PassRefPtr<SVGLength> obj)
224 { 224 {
225 if (!(text->kerning == obj)) 225 if (!(text->kerning == obj))
226 text.access()->kerning = obj; 226 text.access()->kerning = obj;
227 } 227 }
228 228
229 void setStopOpacity(float obj) 229 void setStopOpacity(float obj)
230 { 230 {
231 if (!(stops->opacity == obj)) 231 if (!(stops->opacity == obj))
232 stops.access()->opacity = obj; 232 stops.access()->opacity = obj;
233 } 233 }
(...skipping 15 matching lines...) Expand all
249 if (!(misc->floodColor == obj)) 249 if (!(misc->floodColor == obj))
250 misc.access()->floodColor = obj; 250 misc.access()->floodColor = obj;
251 } 251 }
252 252
253 void setLightingColor(const Color& obj) 253 void setLightingColor(const Color& obj)
254 { 254 {
255 if (!(misc->lightingColor == obj)) 255 if (!(misc->lightingColor == obj))
256 misc.access()->lightingColor = obj; 256 misc.access()->lightingColor = obj;
257 } 257 }
258 258
259 void setBaselineShiftValue(const SVGLength& obj) 259 void setBaselineShiftValue(PassRefPtr<SVGLength> obj)
260 { 260 {
261 if (!(misc->baselineShiftValue == obj)) 261 if (!(misc->baselineShiftValue == obj))
262 misc.access()->baselineShiftValue = obj; 262 misc.access()->baselineShiftValue = obj;
263 } 263 }
264 264
265 // Setters for non-inherited resources 265 // Setters for non-inherited resources
266 void setClipperResource(const AtomicString& obj) 266 void setClipperResource(const AtomicString& obj)
267 { 267 {
268 if (!(resources->clipper == obj)) 268 if (!(resources->clipper == obj))
269 resources.access()->clipper = obj; 269 resources.access()->clipper = obj;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 EGlyphOrientation glyphOrientationHorizontal() const { return (EGlyphOrienta tion) svg_inherited_flags._glyphOrientationHorizontal; } 319 EGlyphOrientation glyphOrientationHorizontal() const { return (EGlyphOrienta tion) svg_inherited_flags._glyphOrientationHorizontal; }
320 EGlyphOrientation glyphOrientationVertical() const { return (EGlyphOrientati on) svg_inherited_flags._glyphOrientationVertical; } 320 EGlyphOrientation glyphOrientationVertical() const { return (EGlyphOrientati on) svg_inherited_flags._glyphOrientationVertical; }
321 float fillOpacity() const { return fill->opacity; } 321 float fillOpacity() const { return fill->opacity; }
322 const SVGPaint::SVGPaintType& fillPaintType() const { return fill->paintType ; } 322 const SVGPaint::SVGPaintType& fillPaintType() const { return fill->paintType ; }
323 const Color& fillPaintColor() const { return fill->paintColor; } 323 const Color& fillPaintColor() const { return fill->paintColor; }
324 const String& fillPaintUri() const { return fill->paintUri; } 324 const String& fillPaintUri() const { return fill->paintUri; }
325 float strokeOpacity() const { return stroke->opacity; } 325 float strokeOpacity() const { return stroke->opacity; }
326 const SVGPaint::SVGPaintType& strokePaintType() const { return stroke->paint Type; } 326 const SVGPaint::SVGPaintType& strokePaintType() const { return stroke->paint Type; }
327 const Color& strokePaintColor() const { return stroke->paintColor; } 327 const Color& strokePaintColor() const { return stroke->paintColor; }
328 const String& strokePaintUri() const { return stroke->paintUri; } 328 const String& strokePaintUri() const { return stroke->paintUri; }
329 Vector<SVGLength> strokeDashArray() const { return stroke->dashArray; } 329 PassRefPtr<SVGLengthList> strokeDashArray() const { return stroke->dashArray ; }
330 float strokeMiterLimit() const { return stroke->miterLimit; } 330 float strokeMiterLimit() const { return stroke->miterLimit; }
331 SVGLength strokeWidth() const { return stroke->width; } 331 PassRefPtr<SVGLength> strokeWidth() const { return stroke->width; }
332 SVGLength strokeDashOffset() const { return stroke->dashOffset; } 332 PassRefPtr<SVGLength> strokeDashOffset() const { return stroke->dashOffset; }
333 SVGLength kerning() const { return text->kerning; } 333 PassRefPtr<SVGLength> kerning() const { return text->kerning; }
334 float stopOpacity() const { return stops->opacity; } 334 float stopOpacity() const { return stops->opacity; }
335 const Color& stopColor() const { return stops->color; } 335 const Color& stopColor() const { return stops->color; }
336 float floodOpacity() const { return misc->floodOpacity; } 336 float floodOpacity() const { return misc->floodOpacity; }
337 const Color& floodColor() const { return misc->floodColor; } 337 const Color& floodColor() const { return misc->floodColor; }
338 const Color& lightingColor() const { return misc->lightingColor; } 338 const Color& lightingColor() const { return misc->lightingColor; }
339 SVGLength baselineShiftValue() const { return misc->baselineShiftValue; } 339 PassRefPtr<SVGLength> baselineShiftValue() const { return misc->baselineShif tValue; }
340 const AtomicString& clipperResource() const { return resources->clipper; } 340 const AtomicString& clipperResource() const { return resources->clipper; }
341 const AtomicString& filterResource() const { return resources->filter; } 341 const AtomicString& filterResource() const { return resources->filter; }
342 const AtomicString& maskerResource() const { return resources->masker; } 342 const AtomicString& maskerResource() const { return resources->masker; }
343 String markerStartResource() const { return inheritedResources->markerStart; } 343 String markerStartResource() const { return inheritedResources->markerStart; }
344 String markerMidResource() const { return inheritedResources->markerMid; } 344 String markerMidResource() const { return inheritedResources->markerMid; }
345 String markerEndResource() const { return inheritedResources->markerEnd; } 345 String markerEndResource() const { return inheritedResources->markerEnd; }
346 EMaskType maskType() const { return (EMaskType) svg_noninherited_flags.f.mas kType; } 346 EMaskType maskType() const { return (EMaskType) svg_noninherited_flags.f.mas kType; }
347 EPaintOrder paintOrder() const { return (EPaintOrder) svg_inherited_flags._p aintOrder; } 347 EPaintOrder paintOrder() const { return (EPaintOrder) svg_inherited_flags._p aintOrder; }
348 EPaintOrderType paintOrderType(unsigned index) const; 348 EPaintOrderType paintOrderType(unsigned index) const;
349 349
350 const SVGPaint::SVGPaintType& visitedLinkFillPaintType() const { return fill ->visitedLinkPaintType; } 350 const SVGPaint::SVGPaintType& visitedLinkFillPaintType() const { return fill ->visitedLinkPaintType; }
351 const Color& visitedLinkFillPaintColor() const { return fill->visitedLinkPai ntColor; } 351 const Color& visitedLinkFillPaintColor() const { return fill->visitedLinkPai ntColor; }
352 const String& visitedLinkFillPaintUri() const { return fill->visitedLinkPain tUri; } 352 const String& visitedLinkFillPaintUri() const { return fill->visitedLinkPain tUri; }
353 const SVGPaint::SVGPaintType& visitedLinkStrokePaintType() const { return st roke->visitedLinkPaintType; } 353 const SVGPaint::SVGPaintType& visitedLinkStrokePaintType() const { return st roke->visitedLinkPaintType; }
354 const Color& visitedLinkStrokePaintColor() const { return stroke->visitedLin kPaintColor; } 354 const Color& visitedLinkStrokePaintColor() const { return stroke->visitedLin kPaintColor; }
355 const String& visitedLinkStrokePaintUri() const { return stroke->visitedLink PaintUri; } 355 const String& visitedLinkStrokePaintUri() const { return stroke->visitedLink PaintUri; }
356 356
357 // convenience 357 // convenience
358 bool hasClipper() const { return !clipperResource().isEmpty(); } 358 bool hasClipper() const { return !clipperResource().isEmpty(); }
359 bool hasMasker() const { return !maskerResource().isEmpty(); } 359 bool hasMasker() const { return !maskerResource().isEmpty(); }
360 bool hasFilter() const { return !filterResource().isEmpty(); } 360 bool hasFilter() const { return !filterResource().isEmpty(); }
361 bool hasMarkers() const { return !markerStartResource().isEmpty() || !marker MidResource().isEmpty() || !markerEndResource().isEmpty(); } 361 bool hasMarkers() const { return !markerStartResource().isEmpty() || !marker MidResource().isEmpty() || !markerEndResource().isEmpty(); }
362 bool hasStroke() const { return strokePaintType() != SVGPaint::SVG_PAINTTYPE _NONE; } 362 bool hasStroke() const { return strokePaintType() != SVGPaint::SVG_PAINTTYPE _NONE; }
363 bool hasVisibleStroke() const { return hasStroke() && !strokeWidth().isZero( ); } 363 bool hasVisibleStroke() const { return hasStroke() && !strokeWidth()->isZero (); }
364 bool hasFill() const { return fillPaintType() != SVGPaint::SVG_PAINTTYPE_NON E; } 364 bool hasFill() const { return fillPaintType() != SVGPaint::SVG_PAINTTYPE_NON E; }
365 bool isVerticalWritingMode() const { return writingMode() == WM_TBRL || writ ingMode() == WM_TB; } 365 bool isVerticalWritingMode() const { return writingMode() == WM_TBRL || writ ingMode() == WM_TB; }
366 366
367 protected: 367 protected:
368 // inherit 368 // inherit
369 struct InheritedFlags { 369 struct InheritedFlags {
370 bool operator==(const InheritedFlags& other) const 370 bool operator==(const InheritedFlags& other) const
371 { 371 {
372 return (_colorRendering == other._colorRendering) 372 return (_colorRendering == other._colorRendering)
373 && (_shapeRendering == other._shapeRendering) 373 && (_shapeRendering == other._shapeRendering)
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 svg_noninherited_flags.f._baselineShift = initialBaselineShift(); 464 svg_noninherited_flags.f._baselineShift = initialBaselineShift();
465 svg_noninherited_flags.f._vectorEffect = initialVectorEffect(); 465 svg_noninherited_flags.f._vectorEffect = initialVectorEffect();
466 svg_noninherited_flags.f.bufferedRendering = initialBufferedRendering(); 466 svg_noninherited_flags.f.bufferedRendering = initialBufferedRendering();
467 svg_noninherited_flags.f.maskType = initialMaskType(); 467 svg_noninherited_flags.f.maskType = initialMaskType();
468 } 468 }
469 }; 469 };
470 470
471 } // namespace WebCore 471 } // namespace WebCore
472 472
473 #endif // SVGRenderStyle_h 473 #endif // SVGRenderStyle_h
OLDNEW
« no previous file with comments | « Source/core/rendering/style/RenderStyle.h ('k') | Source/core/rendering/style/SVGRenderStyleDefs.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698