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

Side by Side Diff: Source/core/svg/properties/SVGAnimatedEnumerationPropertyTearOff.h

Issue 188413002: [SVG] remove SVGAnimatedEnumerationPropertyTearOff.h (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright (C) Research In Motion Limited 2011. All rights reserved.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18 */
19
20 #ifndef SVGAnimatedEnumerationPropertyTearOff_h
21 #define SVGAnimatedEnumerationPropertyTearOff_h
22
23 #include "bindings/v8/ExceptionState.h"
24 #include "core/svg/properties/SVGAnimatedStaticPropertyTearOff.h"
25 #include "core/svg/properties/SVGPropertyTraits.h"
26
27 namespace WebCore {
28
29 template<typename EnumType>
30 class SVGAnimatedEnumerationPropertyTearOff : public SVGAnimatedStaticPropertyTe arOff<unsigned> {
31 public:
32 virtual void setBaseVal(const unsigned& property, ExceptionState& exceptionS tate)
33 {
34 // All SVG enumeration values, that are allowed to be set via SVG DOM st art with 1, 0 corresponds to unknown and is not settable through SVG DOM.
35 if (!property) {
36 exceptionState.throwTypeError("The enumeration value provided is 0, which is not settable.");
37 return;
38 }
39
40 if (property > SVGPropertyTraits<EnumType>::highestEnumValue()) {
41 exceptionState.throwTypeError("The enumeration value provided (" + S tring::number(property) + ") is larger than the largest allowed value (" + Strin g::number(SVGPropertyTraits<EnumType>::highestEnumValue()) + ").");
42 return;
43 }
44 SVGAnimatedStaticPropertyTearOff<unsigned>::setBaseVal(property, excepti onState);
45 }
46
47 static PassRefPtr<SVGAnimatedEnumerationPropertyTearOff<EnumType> > create(S VGElement* contextElement, const QualifiedName& attributeName, AnimatedPropertyT ype animatedPropertyType, EnumType& property)
48 {
49 ASSERT(contextElement);
50 return adoptRef(new SVGAnimatedEnumerationPropertyTearOff<EnumType>(cont extElement, attributeName, animatedPropertyType, reinterpret_cast<unsigned&>(pro perty)));
51 }
52
53 EnumType& currentAnimatedValue()
54 {
55 unsigned& animatedValue = SVGAnimatedStaticPropertyTearOff<unsigned>::cu rrentAnimatedValue();
56 ASSERT(animatedValue <= SVGPropertyTraits<EnumType>::highestEnumValue()) ;
57 return reinterpret_cast<EnumType&>(animatedValue);
58 }
59
60 private:
61 SVGAnimatedEnumerationPropertyTearOff(SVGElement* contextElement, const Qual ifiedName& attributeName, AnimatedPropertyType animatedPropertyType, unsigned& p roperty)
62 : SVGAnimatedStaticPropertyTearOff<unsigned>(contextElement, attributeNa me, animatedPropertyType, property)
63 {
64 }
65 };
66
67 }
68
69 #endif // SVGAnimatedEnumerationPropertyTearOff_h
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698