Remove unused variable movedSectionLogicalTop from table layout code.
[chromium-blink-merge.git] / third_party / WebKit / Source / core / svg / SVGEnumeration.cpp
blobd1a0ff975cd07e9c45310d1f17c0b6425e15b427
1 /*
2 * Copyright (C) 2014 Google Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met:
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above
11 * copyright notice, this list of conditions and the following disclaimer
12 * in the documentation and/or other materials provided with the
13 * distribution.
14 * * Neither the name of Google Inc. nor the names of its
15 * contributors may be used to endorse or promote products derived from
16 * this software without specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 #include "config.h"
33 #include "core/svg/SVGEnumeration.h"
35 #include "bindings/core/v8/ExceptionState.h"
36 #include "bindings/core/v8/ExceptionStatePlaceholder.h"
37 #include "core/dom/ExceptionCode.h"
38 #include "core/svg/SVGAnimationElement.h"
40 namespace blink {
42 inline PassRefPtrWillBeRawPtr<SVGEnumerationBase> toSVGEnumerationBase(PassRefPtrWillBeRawPtr<SVGPropertyBase> passBase)
44 RefPtrWillBeRawPtr<SVGPropertyBase> base = passBase;
45 ASSERT(base->type() == SVGEnumerationBase::classType());
46 return static_pointer_cast<SVGEnumerationBase>(base.release());
49 SVGEnumerationBase::~SVGEnumerationBase()
53 PassRefPtrWillBeRawPtr<SVGPropertyBase> SVGEnumerationBase::cloneForAnimation(const String& value) const
55 RefPtrWillBeRawPtr<SVGEnumerationBase> svgEnumeration = clone();
56 svgEnumeration->setValueAsString(value, IGNORE_EXCEPTION);
57 return svgEnumeration.release();
60 String SVGEnumerationBase::valueAsString() const
62 for (const auto& entry : m_entries) {
63 if (m_value == entry.first)
64 return entry.second;
67 ASSERT(m_value < maxInternalEnumValue());
68 return emptyString();
71 void SVGEnumerationBase::setValue(unsigned short value, ExceptionState& exceptionState)
73 if (!value) {
74 exceptionState.throwTypeError("The enumeration value provided is 0, which is not settable.");
75 return;
78 if (value > maxExposedEnumValue()) {
79 exceptionState.throwTypeError("The enumeration value provided (" + String::number(value) + ") is larger than the largest allowed value (" + String::number(maxExposedEnumValue()) + ").");
80 return;
83 m_value = value;
84 notifyChange();
87 void SVGEnumerationBase::setValueAsString(const String& string, ExceptionState& exceptionState)
89 for (const auto& entry : m_entries) {
90 if (string == entry.second) {
91 // 0 corresponds to _UNKNOWN enumeration values, and should not be settable.
92 ASSERT(entry.first);
93 m_value = entry.first;
94 notifyChange();
95 return;
99 exceptionState.throwDOMException(SyntaxError, "The value provided ('" + string + "') is invalid.");
100 notifyChange();
103 void SVGEnumerationBase::add(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
105 ASSERT_NOT_REACHED();
108 void SVGEnumerationBase::calculateAnimatedValue(SVGAnimationElement* animationElement, float percentage, unsigned repeatCount, PassRefPtrWillBeRawPtr<SVGPropertyBase> from, PassRefPtrWillBeRawPtr<SVGPropertyBase> to, PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
110 ASSERT(animationElement);
111 unsigned short fromEnumeration = animationElement->animationMode() == ToAnimation ? m_value : toSVGEnumerationBase(from)->value();
112 unsigned short toEnumeration = toSVGEnumerationBase(to)->value();
114 animationElement->animateDiscreteType<unsigned short>(percentage, fromEnumeration, toEnumeration, m_value);
117 float SVGEnumerationBase::calculateDistance(PassRefPtrWillBeRawPtr<SVGPropertyBase>, SVGElement*)
119 // No paced animations for boolean.
120 return -1;