OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2012 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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 { | 76 { |
77 } | 77 } |
78 | 78 |
79 private: | 79 private: |
80 LayoutBox m_layoutBox; | 80 LayoutBox m_layoutBox; |
81 }; | 81 }; |
82 | 82 |
83 #define DEFINE_BASICSHAPE_TYPE_CASTS(thisType) \ | 83 #define DEFINE_BASICSHAPE_TYPE_CASTS(thisType) \ |
84 DEFINE_TYPE_CASTS(thisType, BasicShape, value, value->type() == BasicShape::
thisType##Type, value.type() == BasicShape::thisType##Type) | 84 DEFINE_TYPE_CASTS(thisType, BasicShape, value, value->type() == BasicShape::
thisType##Type, value.type() == BasicShape::thisType##Type) |
85 | 85 |
86 class BasicShapeRectangle : public BasicShape { | 86 class BasicShapeRectangle FINAL : public BasicShape { |
87 public: | 87 public: |
88 static PassRefPtr<BasicShapeRectangle> create() { return adoptRef(new BasicS
hapeRectangle); } | 88 static PassRefPtr<BasicShapeRectangle> create() { return adoptRef(new BasicS
hapeRectangle); } |
89 | 89 |
90 Length x() const { return m_x; } | 90 Length x() const { return m_x; } |
91 Length y() const { return m_y; } | 91 Length y() const { return m_y; } |
92 Length width() const { return m_width; } | 92 Length width() const { return m_width; } |
93 Length height() const { return m_height; } | 93 Length height() const { return m_height; } |
94 Length cornerRadiusX() const { return m_cornerRadiusX; } | 94 Length cornerRadiusX() const { return m_cornerRadiusX; } |
95 Length cornerRadiusY() const { return m_cornerRadiusY; } | 95 Length cornerRadiusY() const { return m_cornerRadiusY; } |
96 | 96 |
97 void setX(Length x) { m_x = x; } | 97 void setX(Length x) { m_x = x; } |
98 void setY(Length y) { m_y = y; } | 98 void setY(Length y) { m_y = y; } |
99 void setWidth(Length width) { m_width = width; } | 99 void setWidth(Length width) { m_width = width; } |
100 void setHeight(Length height) { m_height = height; } | 100 void setHeight(Length height) { m_height = height; } |
101 void setCornerRadiusX(Length radiusX) | 101 void setCornerRadiusX(Length radiusX) |
102 { | 102 { |
103 m_cornerRadiusX = radiusX; | 103 m_cornerRadiusX = radiusX; |
104 } | 104 } |
105 void setCornerRadiusY(Length radiusY) | 105 void setCornerRadiusY(Length radiusY) |
106 { | 106 { |
107 m_cornerRadiusY = radiusY; | 107 m_cornerRadiusY = radiusY; |
108 } | 108 } |
109 | 109 |
110 virtual void path(Path&, const FloatRect&) OVERRIDE; | 110 virtual void path(Path&, const FloatRect&) OVERRIDE; |
111 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; | 111 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; |
112 virtual bool operator==(const BasicShape&) const OVERRIDE; | 112 virtual bool operator==(const BasicShape&) const OVERRIDE; |
113 | 113 |
114 virtual Type type() const { return BasicShapeRectangleType; } | 114 virtual Type type() const OVERRIDE { return BasicShapeRectangleType; } |
115 private: | 115 private: |
116 BasicShapeRectangle() { } | 116 BasicShapeRectangle() { } |
117 | 117 |
118 Length m_y; | 118 Length m_y; |
119 Length m_x; | 119 Length m_x; |
120 Length m_width; | 120 Length m_width; |
121 Length m_height; | 121 Length m_height; |
122 Length m_cornerRadiusX; | 122 Length m_cornerRadiusX; |
123 Length m_cornerRadiusY; | 123 Length m_cornerRadiusY; |
124 }; | 124 }; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 | 191 |
192 return BasicShapeRadius(m_value.blend(other.value(), progress, ValueRang
eAll)); | 192 return BasicShapeRadius(m_value.blend(other.value(), progress, ValueRang
eAll)); |
193 } | 193 } |
194 | 194 |
195 private: | 195 private: |
196 Length m_value; | 196 Length m_value; |
197 Type m_type; | 197 Type m_type; |
198 | 198 |
199 }; | 199 }; |
200 | 200 |
201 class BasicShapeCircle : public BasicShape { | 201 class BasicShapeCircle FINAL : public BasicShape { |
202 public: | 202 public: |
203 static PassRefPtr<BasicShapeCircle> create() { return adoptRef(new BasicShap
eCircle); } | 203 static PassRefPtr<BasicShapeCircle> create() { return adoptRef(new BasicShap
eCircle); } |
204 | 204 |
205 const BasicShapeCenterCoordinate& centerX() const { return m_centerX; } | 205 const BasicShapeCenterCoordinate& centerX() const { return m_centerX; } |
206 const BasicShapeCenterCoordinate& centerY() const { return m_centerY; } | 206 const BasicShapeCenterCoordinate& centerY() const { return m_centerY; } |
207 const BasicShapeRadius& radius() const { return m_radius; } | 207 const BasicShapeRadius& radius() const { return m_radius; } |
208 | 208 |
209 float floatValueForRadiusInBox(FloatSize) const; | 209 float floatValueForRadiusInBox(FloatSize) const; |
210 void setCenterX(BasicShapeCenterCoordinate centerX) { m_centerX = centerX; } | 210 void setCenterX(BasicShapeCenterCoordinate centerX) { m_centerX = centerX; } |
211 void setCenterY(BasicShapeCenterCoordinate centerY) { m_centerY = centerY; } | 211 void setCenterY(BasicShapeCenterCoordinate centerY) { m_centerY = centerY; } |
212 void setRadius(BasicShapeRadius radius) { m_radius = radius; } | 212 void setRadius(BasicShapeRadius radius) { m_radius = radius; } |
213 | 213 |
214 virtual void path(Path&, const FloatRect&) OVERRIDE; | 214 virtual void path(Path&, const FloatRect&) OVERRIDE; |
215 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; | 215 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; |
216 virtual bool operator==(const BasicShape&) const OVERRIDE; | 216 virtual bool operator==(const BasicShape&) const OVERRIDE; |
217 | 217 |
218 virtual Type type() const { return BasicShapeCircleType; } | 218 virtual Type type() const OVERRIDE { return BasicShapeCircleType; } |
219 private: | 219 private: |
220 BasicShapeCircle() { } | 220 BasicShapeCircle() { } |
221 | 221 |
222 BasicShapeCenterCoordinate m_centerX; | 222 BasicShapeCenterCoordinate m_centerX; |
223 BasicShapeCenterCoordinate m_centerY; | 223 BasicShapeCenterCoordinate m_centerY; |
224 BasicShapeRadius m_radius; | 224 BasicShapeRadius m_radius; |
225 }; | 225 }; |
226 | 226 |
227 DEFINE_BASICSHAPE_TYPE_CASTS(BasicShapeCircle); | 227 DEFINE_BASICSHAPE_TYPE_CASTS(BasicShapeCircle); |
228 | 228 |
229 class DeprecatedBasicShapeCircle : public BasicShape { | 229 class DeprecatedBasicShapeCircle FINAL : public BasicShape { |
230 public: | 230 public: |
231 static PassRefPtr<DeprecatedBasicShapeCircle> create() { return adoptRef(new
DeprecatedBasicShapeCircle); } | 231 static PassRefPtr<DeprecatedBasicShapeCircle> create() { return adoptRef(new
DeprecatedBasicShapeCircle); } |
232 | 232 |
233 Length centerX() const { return m_centerX; } | 233 Length centerX() const { return m_centerX; } |
234 Length centerY() const { return m_centerY; } | 234 Length centerY() const { return m_centerY; } |
235 Length radius() const { return m_radius; } | 235 Length radius() const { return m_radius; } |
236 | 236 |
237 void setCenterX(Length centerX) { m_centerX = centerX; } | 237 void setCenterX(Length centerX) { m_centerX = centerX; } |
238 void setCenterY(Length centerY) { m_centerY = centerY; } | 238 void setCenterY(Length centerY) { m_centerY = centerY; } |
239 void setRadius(Length radius) { m_radius = radius; } | 239 void setRadius(Length radius) { m_radius = radius; } |
240 | 240 |
241 virtual void path(Path&, const FloatRect&) OVERRIDE; | 241 virtual void path(Path&, const FloatRect&) OVERRIDE; |
242 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; | 242 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; |
243 virtual bool operator==(const BasicShape&) const OVERRIDE; | 243 virtual bool operator==(const BasicShape&) const OVERRIDE; |
244 | 244 |
245 virtual Type type() const { return DeprecatedBasicShapeCircleType; } | 245 virtual Type type() const OVERRIDE { return DeprecatedBasicShapeCircleType;
} |
246 private: | 246 private: |
247 DeprecatedBasicShapeCircle() { } | 247 DeprecatedBasicShapeCircle() { } |
248 | 248 |
249 Length m_centerX; | 249 Length m_centerX; |
250 Length m_centerY; | 250 Length m_centerY; |
251 Length m_radius; | 251 Length m_radius; |
252 }; | 252 }; |
253 | 253 |
254 DEFINE_BASICSHAPE_TYPE_CASTS(DeprecatedBasicShapeCircle); | 254 DEFINE_BASICSHAPE_TYPE_CASTS(DeprecatedBasicShapeCircle); |
255 | 255 |
256 class BasicShapeEllipse : public BasicShape { | 256 class BasicShapeEllipse FINAL : public BasicShape { |
257 public: | 257 public: |
258 static PassRefPtr<BasicShapeEllipse> create() { return adoptRef(new BasicSha
peEllipse); } | 258 static PassRefPtr<BasicShapeEllipse> create() { return adoptRef(new BasicSha
peEllipse); } |
259 | 259 |
260 const BasicShapeCenterCoordinate& centerX() const { return m_centerX; } | 260 const BasicShapeCenterCoordinate& centerX() const { return m_centerX; } |
261 const BasicShapeCenterCoordinate& centerY() const { return m_centerY; } | 261 const BasicShapeCenterCoordinate& centerY() const { return m_centerY; } |
262 const BasicShapeRadius& radiusX() const { return m_radiusX; } | 262 const BasicShapeRadius& radiusX() const { return m_radiusX; } |
263 const BasicShapeRadius& radiusY() const { return m_radiusY; } | 263 const BasicShapeRadius& radiusY() const { return m_radiusY; } |
264 float floatValueForRadiusInBox(const BasicShapeRadius&, float center, float
boxWidthOrHeight) const; | 264 float floatValueForRadiusInBox(const BasicShapeRadius&, float center, float
boxWidthOrHeight) const; |
265 | 265 |
266 void setCenterX(BasicShapeCenterCoordinate centerX) { m_centerX = centerX; } | 266 void setCenterX(BasicShapeCenterCoordinate centerX) { m_centerX = centerX; } |
267 void setCenterY(BasicShapeCenterCoordinate centerY) { m_centerY = centerY; } | 267 void setCenterY(BasicShapeCenterCoordinate centerY) { m_centerY = centerY; } |
268 void setRadiusX(BasicShapeRadius radiusX) { m_radiusX = radiusX; } | 268 void setRadiusX(BasicShapeRadius radiusX) { m_radiusX = radiusX; } |
269 void setRadiusY(BasicShapeRadius radiusY) { m_radiusY = radiusY; } | 269 void setRadiusY(BasicShapeRadius radiusY) { m_radiusY = radiusY; } |
270 | 270 |
271 virtual void path(Path&, const FloatRect&) OVERRIDE; | 271 virtual void path(Path&, const FloatRect&) OVERRIDE; |
272 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; | 272 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; |
273 virtual bool operator==(const BasicShape&) const OVERRIDE; | 273 virtual bool operator==(const BasicShape&) const OVERRIDE; |
274 | 274 |
275 virtual Type type() const { return BasicShapeEllipseType; } | 275 virtual Type type() const OVERRIDE { return BasicShapeEllipseType; } |
276 private: | 276 private: |
277 BasicShapeEllipse() { } | 277 BasicShapeEllipse() { } |
278 | 278 |
279 BasicShapeCenterCoordinate m_centerX; | 279 BasicShapeCenterCoordinate m_centerX; |
280 BasicShapeCenterCoordinate m_centerY; | 280 BasicShapeCenterCoordinate m_centerY; |
281 BasicShapeRadius m_radiusX; | 281 BasicShapeRadius m_radiusX; |
282 BasicShapeRadius m_radiusY; | 282 BasicShapeRadius m_radiusY; |
283 }; | 283 }; |
284 | 284 |
285 DEFINE_BASICSHAPE_TYPE_CASTS(BasicShapeEllipse); | 285 DEFINE_BASICSHAPE_TYPE_CASTS(BasicShapeEllipse); |
286 | 286 |
287 class DeprecatedBasicShapeEllipse : public BasicShape { | 287 class DeprecatedBasicShapeEllipse FINAL : public BasicShape { |
288 public: | 288 public: |
289 static PassRefPtr<DeprecatedBasicShapeEllipse> create() { return adoptRef(ne
w DeprecatedBasicShapeEllipse); } | 289 static PassRefPtr<DeprecatedBasicShapeEllipse> create() { return adoptRef(ne
w DeprecatedBasicShapeEllipse); } |
290 | 290 |
291 Length centerX() const { return m_centerX; } | 291 Length centerX() const { return m_centerX; } |
292 Length centerY() const { return m_centerY; } | 292 Length centerY() const { return m_centerY; } |
293 Length radiusX() const { return m_radiusX; } | 293 Length radiusX() const { return m_radiusX; } |
294 Length radiusY() const { return m_radiusY; } | 294 Length radiusY() const { return m_radiusY; } |
295 | 295 |
296 void setCenterX(Length centerX) { m_centerX = centerX; } | 296 void setCenterX(Length centerX) { m_centerX = centerX; } |
297 void setCenterY(Length centerY) { m_centerY = centerY; } | 297 void setCenterY(Length centerY) { m_centerY = centerY; } |
298 void setRadiusX(Length radiusX) { m_radiusX = radiusX; } | 298 void setRadiusX(Length radiusX) { m_radiusX = radiusX; } |
299 void setRadiusY(Length radiusY) { m_radiusY = radiusY; } | 299 void setRadiusY(Length radiusY) { m_radiusY = radiusY; } |
300 | 300 |
301 virtual void path(Path&, const FloatRect&) OVERRIDE; | 301 virtual void path(Path&, const FloatRect&) OVERRIDE; |
302 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; | 302 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; |
303 virtual bool operator==(const BasicShape&) const OVERRIDE; | 303 virtual bool operator==(const BasicShape&) const OVERRIDE; |
304 | 304 |
305 virtual Type type() const { return DeprecatedBasicShapeEllipseType; } | 305 virtual Type type() const OVERRIDE { return DeprecatedBasicShapeEllipseType;
} |
306 private: | 306 private: |
307 DeprecatedBasicShapeEllipse() { } | 307 DeprecatedBasicShapeEllipse() { } |
308 | 308 |
309 Length m_centerX; | 309 Length m_centerX; |
310 Length m_centerY; | 310 Length m_centerY; |
311 Length m_radiusX; | 311 Length m_radiusX; |
312 Length m_radiusY; | 312 Length m_radiusY; |
313 }; | 313 }; |
314 | 314 |
315 DEFINE_BASICSHAPE_TYPE_CASTS(DeprecatedBasicShapeEllipse); | 315 DEFINE_BASICSHAPE_TYPE_CASTS(DeprecatedBasicShapeEllipse); |
316 | 316 |
317 class BasicShapePolygon : public BasicShape { | 317 class BasicShapePolygon FINAL : public BasicShape { |
318 public: | 318 public: |
319 static PassRefPtr<BasicShapePolygon> create() { return adoptRef(new BasicSha
pePolygon); } | 319 static PassRefPtr<BasicShapePolygon> create() { return adoptRef(new BasicSha
pePolygon); } |
320 | 320 |
321 const Vector<Length>& values() const { return m_values; } | 321 const Vector<Length>& values() const { return m_values; } |
322 Length getXAt(unsigned i) const { return m_values.at(2 * i); } | 322 Length getXAt(unsigned i) const { return m_values.at(2 * i); } |
323 Length getYAt(unsigned i) const { return m_values.at(2 * i + 1); } | 323 Length getYAt(unsigned i) const { return m_values.at(2 * i + 1); } |
324 | 324 |
325 void setWindRule(WindRule windRule) { m_windRule = windRule; } | 325 void setWindRule(WindRule windRule) { m_windRule = windRule; } |
326 void appendPoint(Length x, Length y) { m_values.append(x); m_values.append(y
); } | 326 void appendPoint(Length x, Length y) { m_values.append(x); m_values.append(y
); } |
327 | 327 |
328 virtual void path(Path&, const FloatRect&) OVERRIDE; | 328 virtual void path(Path&, const FloatRect&) OVERRIDE; |
329 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; | 329 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; |
330 virtual bool operator==(const BasicShape&) const OVERRIDE; | 330 virtual bool operator==(const BasicShape&) const OVERRIDE; |
331 | 331 |
332 virtual WindRule windRule() const { return m_windRule; } | 332 virtual WindRule windRule() const OVERRIDE { return m_windRule; } |
333 | 333 |
334 virtual Type type() const { return BasicShapePolygonType; } | 334 virtual Type type() const OVERRIDE { return BasicShapePolygonType; } |
335 private: | 335 private: |
336 BasicShapePolygon() | 336 BasicShapePolygon() |
337 : m_windRule(RULE_NONZERO) | 337 : m_windRule(RULE_NONZERO) |
338 { } | 338 { } |
339 | 339 |
340 WindRule m_windRule; | 340 WindRule m_windRule; |
341 Vector<Length> m_values; | 341 Vector<Length> m_values; |
342 }; | 342 }; |
343 | 343 |
344 DEFINE_BASICSHAPE_TYPE_CASTS(BasicShapePolygon); | 344 DEFINE_BASICSHAPE_TYPE_CASTS(BasicShapePolygon); |
345 | 345 |
346 class BasicShapeInsetRectangle : public BasicShape { | 346 class BasicShapeInsetRectangle FINAL : public BasicShape { |
347 public: | 347 public: |
348 static PassRefPtr<BasicShapeInsetRectangle> create() { return adoptRef(new B
asicShapeInsetRectangle); } | 348 static PassRefPtr<BasicShapeInsetRectangle> create() { return adoptRef(new B
asicShapeInsetRectangle); } |
349 | 349 |
350 Length top() const { return m_top; } | 350 Length top() const { return m_top; } |
351 Length right() const { return m_right; } | 351 Length right() const { return m_right; } |
352 Length bottom() const { return m_bottom; } | 352 Length bottom() const { return m_bottom; } |
353 Length left() const { return m_left; } | 353 Length left() const { return m_left; } |
354 Length cornerRadiusX() const { return m_cornerRadiusX; } | 354 Length cornerRadiusX() const { return m_cornerRadiusX; } |
355 Length cornerRadiusY() const { return m_cornerRadiusY; } | 355 Length cornerRadiusY() const { return m_cornerRadiusY; } |
356 | 356 |
357 void setTop(Length top) { m_top = top; } | 357 void setTop(Length top) { m_top = top; } |
358 void setRight(Length right) { m_right = right; } | 358 void setRight(Length right) { m_right = right; } |
359 void setBottom(Length bottom) { m_bottom = bottom; } | 359 void setBottom(Length bottom) { m_bottom = bottom; } |
360 void setLeft(Length left) { m_left = left; } | 360 void setLeft(Length left) { m_left = left; } |
361 void setCornerRadiusX(Length radiusX) | 361 void setCornerRadiusX(Length radiusX) |
362 { | 362 { |
363 m_cornerRadiusX = radiusX; | 363 m_cornerRadiusX = radiusX; |
364 } | 364 } |
365 void setCornerRadiusY(Length radiusY) | 365 void setCornerRadiusY(Length radiusY) |
366 { | 366 { |
367 m_cornerRadiusY = radiusY; | 367 m_cornerRadiusY = radiusY; |
368 } | 368 } |
369 | 369 |
370 virtual void path(Path&, const FloatRect&) OVERRIDE; | 370 virtual void path(Path&, const FloatRect&) OVERRIDE; |
371 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; | 371 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const OVERRI
DE; |
372 virtual bool operator==(const BasicShape&) const OVERRIDE; | 372 virtual bool operator==(const BasicShape&) const OVERRIDE; |
373 | 373 |
374 virtual Type type() const { return BasicShapeInsetRectangleType; } | 374 virtual Type type() const OVERRIDE { return BasicShapeInsetRectangleType; } |
375 private: | 375 private: |
376 BasicShapeInsetRectangle() { } | 376 BasicShapeInsetRectangle() { } |
377 | 377 |
378 Length m_right; | 378 Length m_right; |
379 Length m_top; | 379 Length m_top; |
380 Length m_bottom; | 380 Length m_bottom; |
381 Length m_left; | 381 Length m_left; |
382 Length m_cornerRadiusX; | 382 Length m_cornerRadiusX; |
383 Length m_cornerRadiusY; | 383 Length m_cornerRadiusY; |
384 }; | 384 }; |
385 | 385 |
386 DEFINE_BASICSHAPE_TYPE_CASTS(BasicShapeInsetRectangle); | 386 DEFINE_BASICSHAPE_TYPE_CASTS(BasicShapeInsetRectangle); |
387 | 387 |
388 } | 388 } |
389 #endif | 389 #endif |
OLD | NEW |