OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 Google Inc. 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 // http://www.w3.org/TR/SVG/single-page.html#types-InterfaceSVGStringList | 43 // http://www.w3.org/TR/SVG/single-page.html#types-InterfaceSVGStringList |
44 // See SVGStringListTearOff for actual Javascript interface. | 44 // See SVGStringListTearOff for actual Javascript interface. |
45 // Unlike other SVG*List implementations, SVGStringList is NOT tied to SVGString
. | 45 // Unlike other SVG*List implementations, SVGStringList is NOT tied to SVGString
. |
46 // SVGStringList operates directly on DOMString. | 46 // SVGStringList operates directly on DOMString. |
47 // | 47 // |
48 // In short: | 48 // In short: |
49 // SVGStringList has_a Vector<String>. | 49 // SVGStringList has_a Vector<String>. |
50 // SVGStringList items are exposed to Javascript as DOMString (not SVGString)
as in the spec. | 50 // SVGStringList items are exposed to Javascript as DOMString (not SVGString)
as in the spec. |
51 // SVGString is used only for boxing values for non-list string property SVGAn
imatedString, | 51 // SVGString is used only for boxing values for non-list string property SVGAn
imatedString, |
52 // and not used for SVGStringList. | 52 // and not used for SVGStringList. |
53 class SVGStringList FINAL : public SVGPropertyHelper<SVGStringList> { | 53 class SVGStringList final : public SVGPropertyHelper<SVGStringList> { |
54 public: | 54 public: |
55 typedef SVGStringListTearOff TearOffType; | 55 typedef SVGStringListTearOff TearOffType; |
56 | 56 |
57 static PassRefPtr<SVGStringList> create() | 57 static PassRefPtr<SVGStringList> create() |
58 { | 58 { |
59 return adoptRef(new SVGStringList()); | 59 return adoptRef(new SVGStringList()); |
60 } | 60 } |
61 | 61 |
62 virtual ~SVGStringList(); | 62 virtual ~SVGStringList(); |
63 | 63 |
64 const Vector<String>& values() const { return m_values; } | 64 const Vector<String>& values() const { return m_values; } |
65 | 65 |
66 // SVGStringList DOM Spec implementation. These are only to be called from S
VGStringListTearOff: | 66 // SVGStringList DOM Spec implementation. These are only to be called from S
VGStringListTearOff: |
67 unsigned long length() { return m_values.size(); } | 67 unsigned long length() { return m_values.size(); } |
68 void clear() { m_values.clear(); } | 68 void clear() { m_values.clear(); } |
69 void initialize(const String&); | 69 void initialize(const String&); |
70 String getItem(size_t, ExceptionState&); | 70 String getItem(size_t, ExceptionState&); |
71 void insertItemBefore(const String&, size_t); | 71 void insertItemBefore(const String&, size_t); |
72 String removeItem(size_t, ExceptionState&); | 72 String removeItem(size_t, ExceptionState&); |
73 void appendItem(const String&); | 73 void appendItem(const String&); |
74 void replaceItem(const String&, size_t, ExceptionState&); | 74 void replaceItem(const String&, size_t, ExceptionState&); |
75 | 75 |
76 // SVGPropertyBase: | 76 // SVGPropertyBase: |
77 void setValueAsString(const String&, ExceptionState&); | 77 void setValueAsString(const String&, ExceptionState&); |
78 virtual String valueAsString() const OVERRIDE; | 78 virtual String valueAsString() const override; |
79 | 79 |
80 virtual void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) OVERR
IDE; | 80 virtual void add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*) overr
ide; |
81 virtual void calculateAnimatedValue(SVGAnimationElement*, float percentage,
unsigned repeatCount, PassRefPtr<SVGPropertyBase> fromValue, PassRefPtr<SVGPrope
rtyBase> toValue, PassRefPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement
*) OVERRIDE; | 81 virtual void calculateAnimatedValue(SVGAnimationElement*, float percentage,
unsigned repeatCount, PassRefPtr<SVGPropertyBase> fromValue, PassRefPtr<SVGPrope
rtyBase> toValue, PassRefPtr<SVGPropertyBase> toAtEndOfDurationValue, SVGElement
*) override; |
82 virtual float calculateDistance(PassRefPtr<SVGPropertyBase> to, SVGElement*)
OVERRIDE; | 82 virtual float calculateDistance(PassRefPtr<SVGPropertyBase> to, SVGElement*)
override; |
83 | 83 |
84 static AnimatedPropertyType classType() { return AnimatedStringList; } | 84 static AnimatedPropertyType classType() { return AnimatedStringList; } |
85 | 85 |
86 private: | 86 private: |
87 SVGStringList(); | 87 SVGStringList(); |
88 | 88 |
89 template <typename CharType> | 89 template <typename CharType> |
90 void parseInternal(const CharType*& ptr, const CharType* end); | 90 void parseInternal(const CharType*& ptr, const CharType* end); |
91 bool checkIndexBound(size_t, ExceptionState&); | 91 bool checkIndexBound(size_t, ExceptionState&); |
92 | 92 |
93 Vector<String> m_values; | 93 Vector<String> m_values; |
94 }; | 94 }; |
95 | 95 |
96 } // namespace blink | 96 } // namespace blink |
97 | 97 |
98 #endif // SVGStringList_h | 98 #endif // SVGStringList_h |
OLD | NEW |