OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above | 8 * 1. Redistributions of source code must retain the above |
9 * copyright notice, this list of conditions and the following | 9 * copyright notice, this list of conditions and the following |
10 * disclaimer. | 10 * disclaimer. |
(...skipping 24 matching lines...) Expand all Loading... |
35 #include "wtf/RefPtr.h" | 35 #include "wtf/RefPtr.h" |
36 #include "wtf/Vector.h" | 36 #include "wtf/Vector.h" |
37 #include "wtf/text/WTFString.h" | 37 #include "wtf/text/WTFString.h" |
38 | 38 |
39 namespace WebCore { | 39 namespace WebCore { |
40 | 40 |
41 class CSSBasicShape : public RefCountedWillBeGarbageCollected<CSSBasicShape> { | 41 class CSSBasicShape : public RefCountedWillBeGarbageCollected<CSSBasicShape> { |
42 DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(CSSBasicShape); | 42 DECLARE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_BE_REMOVED(CSSBasicShape); |
43 public: | 43 public: |
44 enum Type { | 44 enum Type { |
45 CSSBasicShapeRectangleType, | |
46 CSSDeprecatedBasicShapeCircleType, | |
47 CSSDeprecatedBasicShapeEllipseType, | |
48 CSSBasicShapeEllipseType, | 45 CSSBasicShapeEllipseType, |
49 CSSBasicShapePolygonType, | 46 CSSBasicShapePolygonType, |
50 CSSBasicShapeInsetRectangleType, | |
51 CSSBasicShapeCircleType, | 47 CSSBasicShapeCircleType, |
52 CSSBasicShapeInsetType | 48 CSSBasicShapeInsetType |
53 }; | 49 }; |
54 | 50 |
55 virtual Type type() const = 0; | 51 virtual Type type() const = 0; |
56 virtual String cssText() const = 0; | 52 virtual String cssText() const = 0; |
57 virtual bool equals(const CSSBasicShape&) const = 0; | 53 virtual bool equals(const CSSBasicShape&) const = 0; |
58 | 54 |
59 CSSPrimitiveValue* layoutBox() const { return m_layoutBox.get(); } | 55 CSSPrimitiveValue* layoutBox() const { return m_layoutBox.get(); } |
60 void setLayoutBox(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> layoutBox) { m_l
ayoutBox = layoutBox; } | 56 void setLayoutBox(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> layoutBox) { m_l
ayoutBox = layoutBox; } |
61 | 57 |
62 virtual void trace(Visitor* visitor) { visitor->trace(m_layoutBox); } | 58 virtual void trace(Visitor* visitor) { visitor->trace(m_layoutBox); } |
63 | 59 |
64 protected: | 60 protected: |
65 CSSBasicShape() { } | 61 CSSBasicShape() { } |
66 RefPtrWillBeMember<CSSPrimitiveValue> m_layoutBox; | 62 RefPtrWillBeMember<CSSPrimitiveValue> m_layoutBox; |
67 }; | 63 }; |
68 | 64 |
69 class CSSBasicShapeRectangle FINAL : public CSSBasicShape { | |
70 public: | |
71 static PassRefPtrWillBeRawPtr<CSSBasicShapeRectangle> create() { return adop
tRefWillBeNoop(new CSSBasicShapeRectangle); } | |
72 | |
73 CSSPrimitiveValue* x() const { return m_x.get(); } | |
74 CSSPrimitiveValue* y() const { return m_y.get(); } | |
75 CSSPrimitiveValue* width() const { return m_width.get(); } | |
76 CSSPrimitiveValue* height() const { return m_height.get(); } | |
77 CSSPrimitiveValue* radiusX() const { return m_radiusX.get(); } | |
78 CSSPrimitiveValue* radiusY() const { return m_radiusY.get(); } | |
79 | |
80 void setX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> x) { m_x = x; } | |
81 void setY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> y) { m_y = y; } | |
82 void setWidth(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> width) { m_width = w
idth; } | |
83 void setHeight(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> height) { m_height
= height; } | |
84 void setRadiusX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusX) { m_radiu
sX = radiusX; } | |
85 void setRadiusY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusY) { m_radiu
sY = radiusY; } | |
86 | |
87 virtual Type type() const OVERRIDE { return CSSBasicShapeRectangleType; } | |
88 virtual String cssText() const OVERRIDE; | |
89 virtual bool equals(const CSSBasicShape&) const OVERRIDE; | |
90 | |
91 virtual void trace(Visitor*); | |
92 | |
93 private: | |
94 CSSBasicShapeRectangle() { } | |
95 | |
96 RefPtrWillBeMember<CSSPrimitiveValue> m_y; | |
97 RefPtrWillBeMember<CSSPrimitiveValue> m_x; | |
98 RefPtrWillBeMember<CSSPrimitiveValue> m_width; | |
99 RefPtrWillBeMember<CSSPrimitiveValue> m_height; | |
100 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusX; | |
101 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusY; | |
102 }; | |
103 | |
104 class CSSBasicShapeInsetRectangle FINAL : public CSSBasicShape { | |
105 public: | |
106 static PassRefPtrWillBeRawPtr<CSSBasicShapeInsetRectangle> create() { return
adoptRefWillBeNoop(new CSSBasicShapeInsetRectangle); } | |
107 | |
108 CSSPrimitiveValue* top() const { return m_top.get(); } | |
109 CSSPrimitiveValue* right() const { return m_right.get(); } | |
110 CSSPrimitiveValue* bottom() const { return m_bottom.get(); } | |
111 CSSPrimitiveValue* left() const { return m_left.get(); } | |
112 CSSPrimitiveValue* radiusX() const { return m_radiusX.get(); } | |
113 CSSPrimitiveValue* radiusY() const { return m_radiusY.get(); } | |
114 | |
115 void setTop(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> top) { m_top = top; } | |
116 void setRight(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> right) { m_right = r
ight; } | |
117 void setBottom(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> bottom) { m_bottom
= bottom; } | |
118 void setLeft(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> left) { m_left = left
; } | |
119 void setRadiusX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusX) { m_radiu
sX = radiusX; } | |
120 void setRadiusY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusY) { m_radiu
sY = radiusY; } | |
121 | |
122 virtual Type type() const OVERRIDE { return CSSBasicShapeInsetRectangleType;
} | |
123 virtual String cssText() const OVERRIDE; | |
124 virtual bool equals(const CSSBasicShape&) const OVERRIDE; | |
125 | |
126 virtual void trace(Visitor*); | |
127 | |
128 private: | |
129 CSSBasicShapeInsetRectangle() { } | |
130 | |
131 RefPtrWillBeMember<CSSPrimitiveValue> m_right; | |
132 RefPtrWillBeMember<CSSPrimitiveValue> m_top; | |
133 RefPtrWillBeMember<CSSPrimitiveValue> m_bottom; | |
134 RefPtrWillBeMember<CSSPrimitiveValue> m_left; | |
135 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusX; | |
136 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusY; | |
137 }; | |
138 | |
139 class CSSBasicShapeCircle FINAL : public CSSBasicShape { | 65 class CSSBasicShapeCircle FINAL : public CSSBasicShape { |
140 public: | 66 public: |
141 static PassRefPtrWillBeRawPtr<CSSBasicShapeCircle> create() { return adoptRe
fWillBeNoop(new CSSBasicShapeCircle); } | 67 static PassRefPtrWillBeRawPtr<CSSBasicShapeCircle> create() { return adoptRe
fWillBeNoop(new CSSBasicShapeCircle); } |
142 | 68 |
143 virtual Type type() const OVERRIDE { return CSSBasicShapeCircleType; } | 69 virtual Type type() const OVERRIDE { return CSSBasicShapeCircleType; } |
144 virtual String cssText() const OVERRIDE; | 70 virtual String cssText() const OVERRIDE; |
145 virtual bool equals(const CSSBasicShape&) const OVERRIDE; | 71 virtual bool equals(const CSSBasicShape&) const OVERRIDE; |
146 | 72 |
147 CSSPrimitiveValue* centerX() const { return m_centerX.get(); } | 73 CSSPrimitiveValue* centerX() const { return m_centerX.get(); } |
148 CSSPrimitiveValue* centerY() const { return m_centerY.get(); } | 74 CSSPrimitiveValue* centerY() const { return m_centerY.get(); } |
149 CSSPrimitiveValue* radius() const { return m_radius.get(); } | 75 CSSPrimitiveValue* radius() const { return m_radius.get(); } |
150 | 76 |
151 void setCenterX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerX) { m_cente
rX = centerX; } | 77 void setCenterX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerX) { m_cente
rX = centerX; } |
152 void setCenterY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerY) { m_cente
rY = centerY; } | 78 void setCenterY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerY) { m_cente
rY = centerY; } |
153 void setRadius(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radius) { m_radius
= radius; } | 79 void setRadius(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radius) { m_radius
= radius; } |
154 | 80 |
155 virtual void trace(Visitor*); | 81 virtual void trace(Visitor*); |
156 | 82 |
157 private: | 83 private: |
158 CSSBasicShapeCircle() { } | 84 CSSBasicShapeCircle() { } |
159 | 85 |
160 RefPtrWillBeMember<CSSPrimitiveValue> m_centerX; | 86 RefPtrWillBeMember<CSSPrimitiveValue> m_centerX; |
161 RefPtrWillBeMember<CSSPrimitiveValue> m_centerY; | 87 RefPtrWillBeMember<CSSPrimitiveValue> m_centerY; |
162 RefPtrWillBeMember<CSSPrimitiveValue> m_radius; | 88 RefPtrWillBeMember<CSSPrimitiveValue> m_radius; |
163 }; | 89 }; |
164 | 90 |
165 class CSSDeprecatedBasicShapeCircle FINAL : public CSSBasicShape { | |
166 public: | |
167 static PassRefPtrWillBeRawPtr<CSSDeprecatedBasicShapeCircle> create() { retu
rn adoptRefWillBeNoop(new CSSDeprecatedBasicShapeCircle); } | |
168 | |
169 CSSPrimitiveValue* centerX() const { return m_centerX.get(); } | |
170 CSSPrimitiveValue* centerY() const { return m_centerY.get(); } | |
171 CSSPrimitiveValue* radius() const { return m_radius.get(); } | |
172 | |
173 void setCenterX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerX) { m_cente
rX = centerX; } | |
174 void setCenterY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerY) { m_cente
rY = centerY; } | |
175 void setRadius(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radius) { m_radius
= radius; } | |
176 | |
177 virtual Type type() const OVERRIDE { return CSSDeprecatedBasicShapeCircleTyp
e; } | |
178 | |
179 virtual String cssText() const OVERRIDE; | |
180 virtual bool equals(const CSSBasicShape&) const OVERRIDE; | |
181 | |
182 virtual void trace(Visitor*); | |
183 | |
184 private: | |
185 CSSDeprecatedBasicShapeCircle() { } | |
186 | |
187 RefPtrWillBeMember<CSSPrimitiveValue> m_centerY; | |
188 RefPtrWillBeMember<CSSPrimitiveValue> m_centerX; | |
189 RefPtrWillBeMember<CSSPrimitiveValue> m_radius; | |
190 }; | |
191 | |
192 class CSSBasicShapeEllipse FINAL : public CSSBasicShape { | 91 class CSSBasicShapeEllipse FINAL : public CSSBasicShape { |
193 public: | 92 public: |
194 static PassRefPtrWillBeRawPtr<CSSBasicShapeEllipse> create() { return adoptR
efWillBeNoop(new CSSBasicShapeEllipse); } | 93 static PassRefPtrWillBeRawPtr<CSSBasicShapeEllipse> create() { return adoptR
efWillBeNoop(new CSSBasicShapeEllipse); } |
195 | 94 |
196 virtual Type type() const OVERRIDE { return CSSBasicShapeEllipseType; } | 95 virtual Type type() const OVERRIDE { return CSSBasicShapeEllipseType; } |
197 virtual String cssText() const OVERRIDE; | 96 virtual String cssText() const OVERRIDE; |
198 virtual bool equals(const CSSBasicShape&) const OVERRIDE; | 97 virtual bool equals(const CSSBasicShape&) const OVERRIDE; |
199 | 98 |
200 CSSPrimitiveValue* centerX() const { return m_centerX.get(); } | 99 CSSPrimitiveValue* centerX() const { return m_centerX.get(); } |
201 CSSPrimitiveValue* centerY() const { return m_centerY.get(); } | 100 CSSPrimitiveValue* centerY() const { return m_centerY.get(); } |
202 CSSPrimitiveValue* radiusX() const { return m_radiusX.get(); } | 101 CSSPrimitiveValue* radiusX() const { return m_radiusX.get(); } |
203 CSSPrimitiveValue* radiusY() const { return m_radiusY.get(); } | 102 CSSPrimitiveValue* radiusY() const { return m_radiusY.get(); } |
204 | 103 |
205 void setCenterX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerX) { m_cente
rX = centerX; } | 104 void setCenterX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerX) { m_cente
rX = centerX; } |
206 void setCenterY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerY) { m_cente
rY = centerY; } | 105 void setCenterY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerY) { m_cente
rY = centerY; } |
207 void setRadiusX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusX) { m_radiu
sX = radiusX; } | 106 void setRadiusX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusX) { m_radiu
sX = radiusX; } |
208 void setRadiusY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusY) { m_radiu
sY = radiusY; } | 107 void setRadiusY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusY) { m_radiu
sY = radiusY; } |
209 | 108 |
210 virtual void trace(Visitor*); | 109 virtual void trace(Visitor*); |
211 | 110 |
212 private: | 111 private: |
213 CSSBasicShapeEllipse() { } | 112 CSSBasicShapeEllipse() { } |
214 | 113 |
215 RefPtrWillBeMember<CSSPrimitiveValue> m_centerX; | 114 RefPtrWillBeMember<CSSPrimitiveValue> m_centerX; |
216 RefPtrWillBeMember<CSSPrimitiveValue> m_centerY; | 115 RefPtrWillBeMember<CSSPrimitiveValue> m_centerY; |
217 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusX; | 116 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusX; |
218 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusY; | 117 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusY; |
219 }; | 118 }; |
220 | 119 |
221 class CSSDeprecatedBasicShapeEllipse FINAL : public CSSBasicShape { | |
222 public: | |
223 static PassRefPtrWillBeRawPtr<CSSDeprecatedBasicShapeEllipse> create() { ret
urn adoptRefWillBeNoop(new CSSDeprecatedBasicShapeEllipse); } | |
224 | |
225 CSSPrimitiveValue* centerX() const { return m_centerX.get(); } | |
226 CSSPrimitiveValue* centerY() const { return m_centerY.get(); } | |
227 CSSPrimitiveValue* radiusX() const { return m_radiusX.get(); } | |
228 CSSPrimitiveValue* radiusY() const { return m_radiusY.get(); } | |
229 | |
230 void setCenterX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerX) { m_cente
rX = centerX; } | |
231 void setCenterY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> centerY) { m_cente
rY = centerY; } | |
232 void setRadiusX(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusX) { m_radiu
sX = radiusX; } | |
233 void setRadiusY(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> radiusY) { m_radiu
sY = radiusY; } | |
234 | |
235 virtual Type type() const OVERRIDE { return CSSDeprecatedBasicShapeEllipseTy
pe; } | |
236 virtual String cssText() const OVERRIDE; | |
237 virtual bool equals(const CSSBasicShape&) const OVERRIDE; | |
238 | |
239 virtual void trace(Visitor*); | |
240 | |
241 private: | |
242 CSSDeprecatedBasicShapeEllipse() { } | |
243 | |
244 RefPtrWillBeMember<CSSPrimitiveValue> m_centerX; | |
245 RefPtrWillBeMember<CSSPrimitiveValue> m_centerY; | |
246 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusX; | |
247 RefPtrWillBeMember<CSSPrimitiveValue> m_radiusY; | |
248 }; | |
249 | |
250 class CSSBasicShapePolygon FINAL : public CSSBasicShape { | 120 class CSSBasicShapePolygon FINAL : public CSSBasicShape { |
251 public: | 121 public: |
252 static PassRefPtrWillBeRawPtr<CSSBasicShapePolygon> create() { return adoptR
efWillBeNoop(new CSSBasicShapePolygon); } | 122 static PassRefPtrWillBeRawPtr<CSSBasicShapePolygon> create() { return adoptR
efWillBeNoop(new CSSBasicShapePolygon); } |
253 | 123 |
254 void appendPoint(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> x, PassRefPtrWill
BeRawPtr<CSSPrimitiveValue> y) | 124 void appendPoint(PassRefPtrWillBeRawPtr<CSSPrimitiveValue> x, PassRefPtrWill
BeRawPtr<CSSPrimitiveValue> y) |
255 { | 125 { |
256 m_values.append(x); | 126 m_values.append(x); |
257 m_values.append(y); | 127 m_values.append(y); |
258 } | 128 } |
259 | 129 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 | 214 |
345 RefPtrWillBeMember<CSSPrimitiveValue> m_topLeftRadius; | 215 RefPtrWillBeMember<CSSPrimitiveValue> m_topLeftRadius; |
346 RefPtrWillBeMember<CSSPrimitiveValue> m_topRightRadius; | 216 RefPtrWillBeMember<CSSPrimitiveValue> m_topRightRadius; |
347 RefPtrWillBeMember<CSSPrimitiveValue> m_bottomRightRadius; | 217 RefPtrWillBeMember<CSSPrimitiveValue> m_bottomRightRadius; |
348 RefPtrWillBeMember<CSSPrimitiveValue> m_bottomLeftRadius; | 218 RefPtrWillBeMember<CSSPrimitiveValue> m_bottomLeftRadius; |
349 }; | 219 }; |
350 | 220 |
351 } // namespace WebCore | 221 } // namespace WebCore |
352 | 222 |
353 #endif // CSSBasicShapes_h | 223 #endif // CSSBasicShapes_h |
OLD | NEW |