diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/svg/SVGAnimatedType.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/svg/SVGAnimatedType.cpp | 330 |
1 files changed, 0 insertions, 330 deletions
diff --git a/chromium/third_party/WebKit/Source/core/svg/SVGAnimatedType.cpp b/chromium/third_party/WebKit/Source/core/svg/SVGAnimatedType.cpp deleted file mode 100644 index 486773f4306..00000000000 --- a/chromium/third_party/WebKit/Source/core/svg/SVGAnimatedType.cpp +++ /dev/null @@ -1,330 +0,0 @@ -/* - * Copyright (C) Research In Motion Limited 2011. All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "core/svg/SVGAnimatedType.h" - -#include "bindings/v8/ExceptionState.h" -#include "core/svg/SVGParserUtilities.h" -#include "core/svg/SVGPathByteStream.h" - -namespace WebCore { - -SVGAnimatedType::SVGAnimatedType(AnimatedPropertyType type) - : m_type(type) -{ -} - -SVGAnimatedType::~SVGAnimatedType() -{ - switch (m_type) { - case AnimatedAngle: - delete m_data.angleAndEnumeration; - break; - case AnimatedBoolean: - delete m_data.boolean; - break; - case AnimatedColor: - delete m_data.color; - break; - case AnimatedEnumeration: - delete m_data.enumeration; - break; - case AnimatedInteger: - delete m_data.integer; - break; - case AnimatedIntegerOptionalInteger: - delete m_data.integerOptionalInteger; - break; - case AnimatedLength: - delete m_data.length; - break; - case AnimatedLengthList: - delete m_data.lengthList; - break; - case AnimatedNumber: - delete m_data.number; - break; - case AnimatedNumberList: - delete m_data.numberList; - break; - case AnimatedNumberOptionalNumber: - delete m_data.numberOptionalNumber; - break; - case AnimatedPath: - delete m_data.path; - break; - case AnimatedPoints: - delete m_data.pointList; - break; - case AnimatedPreserveAspectRatio: - delete m_data.preserveAspectRatio; - break; - case AnimatedRect: - delete m_data.rect; - break; - case AnimatedString: - delete m_data.string; - break; - case AnimatedTransformList: - delete m_data.transformList; - break; - case AnimatedUnknown: - ASSERT_NOT_REACHED(); - break; - } -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createAngleAndEnumeration(std::pair<SVGAngle, unsigned>* angleAndEnumeration) -{ - ASSERT(angleAndEnumeration); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedAngle)); - animatedType->m_data.angleAndEnumeration = angleAndEnumeration; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createBoolean(bool* boolean) -{ - ASSERT(boolean); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedBoolean)); - animatedType->m_data.boolean = boolean; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createColor(Color* color) -{ - ASSERT(color); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedColor)); - animatedType->m_data.color = color; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createEnumeration(unsigned* enumeration) -{ - ASSERT(enumeration); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedEnumeration)); - animatedType->m_data.enumeration = enumeration; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createInteger(int* integer) -{ - ASSERT(integer); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedInteger)); - animatedType->m_data.integer = integer; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createIntegerOptionalInteger(pair<int, int>* integerOptionalInteger) -{ - ASSERT(integerOptionalInteger); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedIntegerOptionalInteger)); - animatedType->m_data.integerOptionalInteger = integerOptionalInteger; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createLength(SVGLength* length) -{ - ASSERT(length); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedLength)); - animatedType->m_data.length = length; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createLengthList(SVGLengthList* lengthList) -{ - ASSERT(lengthList); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedLengthList)); - animatedType->m_data.lengthList = lengthList; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createNumber(float* number) -{ - ASSERT(number); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedNumber)); - animatedType->m_data.number = number; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createNumberList(SVGNumberList* numberList) -{ - ASSERT(numberList); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedNumberList)); - animatedType->m_data.numberList = numberList; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createNumberOptionalNumber(pair<float, float>* numberOptionalNumber) -{ - ASSERT(numberOptionalNumber); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedNumberOptionalNumber)); - animatedType->m_data.numberOptionalNumber = numberOptionalNumber; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createPath(PassOwnPtr<SVGPathByteStream> path) -{ - ASSERT(path); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedPath)); - animatedType->m_data.path = path.leakPtr(); - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createPointList(SVGPointList* pointList) -{ - ASSERT(pointList); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedPoints)); - animatedType->m_data.pointList = pointList; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createPreserveAspectRatio(SVGPreserveAspectRatio* preserveAspectRatio) -{ - ASSERT(preserveAspectRatio); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedPreserveAspectRatio)); - animatedType->m_data.preserveAspectRatio = preserveAspectRatio; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createRect(SVGRect* rect) -{ - ASSERT(rect); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedRect)); - animatedType->m_data.rect = rect; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createString(String* string) -{ - ASSERT(string); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedString)); - animatedType->m_data.string = string; - return animatedType.release(); -} - -PassOwnPtr<SVGAnimatedType> SVGAnimatedType::createTransformList(SVGTransformList* transformList) -{ - ASSERT(transformList); - OwnPtr<SVGAnimatedType> animatedType = adoptPtr(new SVGAnimatedType(AnimatedTransformList)); - animatedType->m_data.transformList = transformList; - return animatedType.release(); -} - -String SVGAnimatedType::valueAsString() -{ - switch (m_type) { - case AnimatedColor: - ASSERT(m_data.color); - return m_data.color->serialized(); - case AnimatedLength: - ASSERT(m_data.length); - return m_data.length->valueAsString(); - case AnimatedLengthList: - ASSERT(m_data.lengthList); - return m_data.lengthList->valueAsString(); - case AnimatedNumber: - ASSERT(m_data.number); - return String::number(*m_data.number); - case AnimatedRect: - ASSERT(m_data.rect); - return String::number(m_data.rect->x()) + ' ' + String::number(m_data.rect->y()) + ' ' - + String::number(m_data.rect->width()) + ' ' + String::number(m_data.rect->height()); - case AnimatedString: - ASSERT(m_data.string); - return *m_data.string; - - // These types don't appear in the table in SVGElement::cssPropertyToTypeMap() and thus don't need valueAsString() support. - case AnimatedAngle: - case AnimatedBoolean: - case AnimatedEnumeration: - case AnimatedInteger: - case AnimatedIntegerOptionalInteger: - case AnimatedNumberList: - case AnimatedNumberOptionalNumber: - case AnimatedPath: - case AnimatedPoints: - case AnimatedPreserveAspectRatio: - case AnimatedTransformList: - case AnimatedUnknown: - // Only SVG DOM animations use these property types - that means valueAsString() is never used for those. - ASSERT_NOT_REACHED(); - break; - } - ASSERT_NOT_REACHED(); - return String(); -} - -bool SVGAnimatedType::setValueAsString(const QualifiedName& attrName, const String& value) -{ - switch (m_type) { - case AnimatedColor: - ASSERT(m_data.color); - *m_data.color = value.isEmpty() ? Color() : SVGColor::colorFromRGBColorString(value); - break; - case AnimatedLength: { - ASSERT(m_data.length); - TrackExceptionState exceptionState; - m_data.length->setValueAsString(value, SVGLength::lengthModeForAnimatedLengthAttribute(attrName), exceptionState); - return !exceptionState.hadException(); - } - case AnimatedLengthList: - ASSERT(m_data.lengthList); - m_data.lengthList->parse(value, SVGLength::lengthModeForAnimatedLengthAttribute(attrName)); - break; - case AnimatedNumber: - ASSERT(m_data.number); - parseNumberFromString(value, *m_data.number); - break; - case AnimatedRect: - ASSERT(m_data.rect); - parseRect(value, *m_data.rect); - break; - case AnimatedString: - ASSERT(m_data.string); - *m_data.string = value; - break; - - // These types don't appear in the table in SVGElement::cssPropertyToTypeMap() and thus don't need setValueAsString() support. - case AnimatedAngle: - case AnimatedBoolean: - case AnimatedEnumeration: - case AnimatedInteger: - case AnimatedIntegerOptionalInteger: - case AnimatedNumberList: - case AnimatedNumberOptionalNumber: - case AnimatedPath: - case AnimatedPoints: - case AnimatedPreserveAspectRatio: - case AnimatedTransformList: - case AnimatedUnknown: - // Only SVG DOM animations use these property types - that means setValueAsString() is never used for those. - ASSERT_NOT_REACHED(); - break; - } - return true; -} - -bool SVGAnimatedType::supportsAnimVal(AnimatedPropertyType type) -{ - // AnimatedColor is only used for CSS property animations. - return type != AnimatedUnknown && type != AnimatedColor; -} - -} // namespace WebCore |