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

Side by Side Diff: Source/core/layout/style/SVGLayoutStyle.cpp

Issue 896773002: [svg2] Make 'x' and 'y' presentation attributes (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase Created 5 years, 10 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, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 2004, 2005, 2010 Rob Buis <buis@kde.org> 3 2004, 2005, 2010 Rob Buis <buis@kde.org>
4 Copyright (C) Research In Motion Limited 2010. All rights reserved. 4 Copyright (C) Research In Motion Limited 2010. All rights reserved.
5 5
6 Based on khtml code by: 6 Based on khtml code by:
7 Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) 7 Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
8 Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) 8 Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org)
9 Copyright (C) 2002-2003 Dirk Mueller (mueller@kde.org) 9 Copyright (C) 2002-2003 Dirk Mueller (mueller@kde.org)
10 Copyright (C) 2002 Apple Computer, Inc. 10 Copyright (C) 2002 Apple Computer, Inc.
(...skipping 22 matching lines...) Expand all
33 33
34 SVGLayoutStyle::SVGLayoutStyle() 34 SVGLayoutStyle::SVGLayoutStyle()
35 { 35 {
36 static SVGLayoutStyle* defaultStyle = new SVGLayoutStyle(CreateDefault); 36 static SVGLayoutStyle* defaultStyle = new SVGLayoutStyle(CreateDefault);
37 37
38 fill = defaultStyle->fill; 38 fill = defaultStyle->fill;
39 stroke = defaultStyle->stroke; 39 stroke = defaultStyle->stroke;
40 stops = defaultStyle->stops; 40 stops = defaultStyle->stops;
41 misc = defaultStyle->misc; 41 misc = defaultStyle->misc;
42 inheritedResources = defaultStyle->inheritedResources; 42 inheritedResources = defaultStyle->inheritedResources;
43 layout = defaultStyle->layout;
43 resources = defaultStyle->resources; 44 resources = defaultStyle->resources;
44 45
45 setBitDefaults(); 46 setBitDefaults();
46 } 47 }
47 48
48 SVGLayoutStyle::SVGLayoutStyle(CreateDefaultType) 49 SVGLayoutStyle::SVGLayoutStyle(CreateDefaultType)
49 { 50 {
50 setBitDefaults(); 51 setBitDefaults();
51 52
52 fill.init(); 53 fill.init();
53 stroke.init(); 54 stroke.init();
54 stops.init(); 55 stops.init();
55 misc.init(); 56 misc.init();
56 inheritedResources.init(); 57 inheritedResources.init();
58 layout.init();
57 resources.init(); 59 resources.init();
58 } 60 }
59 61
60 SVGLayoutStyle::SVGLayoutStyle(const SVGLayoutStyle& other) 62 SVGLayoutStyle::SVGLayoutStyle(const SVGLayoutStyle& other)
61 : RefCounted<SVGLayoutStyle>() 63 : RefCounted<SVGLayoutStyle>()
62 { 64 {
63 fill = other.fill; 65 fill = other.fill;
64 stroke = other.stroke; 66 stroke = other.stroke;
65 stops = other.stops; 67 stops = other.stops;
66 misc = other.misc; 68 misc = other.misc;
67 inheritedResources = other.inheritedResources; 69 inheritedResources = other.inheritedResources;
70 layout = other.layout;
68 resources = other.resources; 71 resources = other.resources;
69 72
70 svg_inherited_flags = other.svg_inherited_flags; 73 svg_inherited_flags = other.svg_inherited_flags;
71 svg_noninherited_flags = other.svg_noninherited_flags; 74 svg_noninherited_flags = other.svg_noninherited_flags;
72 } 75 }
73 76
74 SVGLayoutStyle::~SVGLayoutStyle() 77 SVGLayoutStyle::~SVGLayoutStyle()
75 { 78 {
76 } 79 }
77 80
78 bool SVGLayoutStyle::operator==(const SVGLayoutStyle& other) const 81 bool SVGLayoutStyle::operator==(const SVGLayoutStyle& other) const
79 { 82 {
80 return fill == other.fill 83 return fill == other.fill
81 && stroke == other.stroke 84 && stroke == other.stroke
82 && stops == other.stops 85 && stops == other.stops
83 && misc == other.misc 86 && misc == other.misc
84 && inheritedResources == other.inheritedResources 87 && inheritedResources == other.inheritedResources
88 && layout == other.layout
85 && resources == other.resources 89 && resources == other.resources
86 && svg_inherited_flags == other.svg_inherited_flags 90 && svg_inherited_flags == other.svg_inherited_flags
87 && svg_noninherited_flags == other.svg_noninherited_flags; 91 && svg_noninherited_flags == other.svg_noninherited_flags;
88 } 92 }
89 93
90 bool SVGLayoutStyle::inheritedNotEqual(const SVGLayoutStyle* other) const 94 bool SVGLayoutStyle::inheritedNotEqual(const SVGLayoutStyle* other) const
91 { 95 {
92 return fill != other->fill 96 return fill != other->fill
93 || stroke != other->stroke 97 || stroke != other->stroke
94 || inheritedResources != other->inheritedResources 98 || inheritedResources != other->inheritedResources
(...skipping 10 matching lines...) Expand all
105 inheritedResources = svgInheritParent->inheritedResources; 109 inheritedResources = svgInheritParent->inheritedResources;
106 110
107 svg_inherited_flags = svgInheritParent->svg_inherited_flags; 111 svg_inherited_flags = svgInheritParent->svg_inherited_flags;
108 } 112 }
109 113
110 void SVGLayoutStyle::copyNonInheritedFrom(const SVGLayoutStyle* other) 114 void SVGLayoutStyle::copyNonInheritedFrom(const SVGLayoutStyle* other)
111 { 115 {
112 svg_noninherited_flags = other->svg_noninherited_flags; 116 svg_noninherited_flags = other->svg_noninherited_flags;
113 stops = other->stops; 117 stops = other->stops;
114 misc = other->misc; 118 misc = other->misc;
119 layout = other->layout;
115 resources = other->resources; 120 resources = other->resources;
116 } 121 }
117 122
118 StyleDifference SVGLayoutStyle::diff(const SVGLayoutStyle* other) const 123 StyleDifference SVGLayoutStyle::diff(const SVGLayoutStyle* other) const
119 { 124 {
120 StyleDifference styleDifference; 125 StyleDifference styleDifference;
121 126
122 if (diffNeedsLayoutAndPaintInvalidation(other)) { 127 if (diffNeedsLayoutAndPaintInvalidation(other)) {
123 styleDifference.setNeedsFullLayout(); 128 styleDifference.setNeedsFullLayout();
124 styleDifference.setNeedsPaintInvalidationObject(); 129 styleDifference.setNeedsPaintInvalidationObject();
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 || stroke->paintUri != other->stroke->paintUri 175 || stroke->paintUri != other->stroke->paintUri
171 || stroke->miterLimit != other->stroke->miterLimit 176 || stroke->miterLimit != other->stroke->miterLimit
172 || *stroke->dashArray != *other->stroke->dashArray 177 || *stroke->dashArray != *other->stroke->dashArray
173 || *stroke->dashOffset != *other->stroke->dashOffset 178 || *stroke->dashOffset != *other->stroke->dashOffset
174 || stroke->visitedLinkPaintColor != other->stroke->visitedLinkPaintC olor 179 || stroke->visitedLinkPaintColor != other->stroke->visitedLinkPaintC olor
175 || stroke->visitedLinkPaintUri != other->stroke->visitedLinkPaintUri 180 || stroke->visitedLinkPaintUri != other->stroke->visitedLinkPaintUri
176 || stroke->visitedLinkPaintType != other->stroke->visitedLinkPaintTy pe) 181 || stroke->visitedLinkPaintType != other->stroke->visitedLinkPaintTy pe)
177 return true; 182 return true;
178 } 183 }
179 184
185 // The x and y properties require a re-layout.
186 if (layout.get() != other->layout.get()) {
187 if (layout->x != other->layout->x
188 || layout->y != other->layout->y)
189 return true;
190 }
191
180 return false; 192 return false;
181 } 193 }
182 194
183 bool SVGLayoutStyle::diffNeedsPaintInvalidation(const SVGLayoutStyle* other) con st 195 bool SVGLayoutStyle::diffNeedsPaintInvalidation(const SVGLayoutStyle* other) con st
184 { 196 {
185 if (stroke->opacity != other->stroke->opacity) 197 if (stroke->opacity != other->stroke->opacity)
186 return true; 198 return true;
187 199
188 // Painting related properties only need paint invalidation. 200 // Painting related properties only need paint invalidation.
189 if (misc.get() != other->misc.get()) { 201 if (misc.get() != other->misc.get()) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 } 238 }
227 239
228 EPaintOrderType SVGLayoutStyle::paintOrderType(unsigned index) const 240 EPaintOrderType SVGLayoutStyle::paintOrderType(unsigned index) const
229 { 241 {
230 ASSERT(index < ((1 << kPaintOrderBitwidth)-1)); 242 ASSERT(index < ((1 << kPaintOrderBitwidth)-1));
231 unsigned pt = (paintOrder() >> (kPaintOrderBitwidth*index)) & ((1u << kPaint OrderBitwidth) - 1); 243 unsigned pt = (paintOrder() >> (kPaintOrderBitwidth*index)) & ((1u << kPaint OrderBitwidth) - 1);
232 return (EPaintOrderType)pt; 244 return (EPaintOrderType)pt;
233 } 245 }
234 246
235 } 247 }
OLDNEW
« no previous file with comments | « Source/core/layout/style/SVGLayoutStyle.h ('k') | Source/core/layout/style/SVGLayoutStyleDefs.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698