| 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 |