Index: Source/core/animation/interpolation/LengthStyleInterpolation.cpp |
diff --git a/Source/core/animation/interpolation/LengthStyleInterpolation.cpp b/Source/core/animation/interpolation/LengthStyleInterpolation.cpp |
deleted file mode 100644 |
index bd8d1d9aa8ed5fc3b9522a7bfaf128e3e4e4e622..0000000000000000000000000000000000000000 |
--- a/Source/core/animation/interpolation/LengthStyleInterpolation.cpp |
+++ /dev/null |
@@ -1,109 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "config.h" |
-#include "core/animation/interpolation/LengthStyleInterpolation.h" |
- |
-#include "core/css/CSSCalculationValue.h" |
-#include "core/css/resolver/StyleBuilder.h" |
- |
-namespace blink { |
- |
-bool LengthStyleInterpolation::canCreateFrom(const CSSValue& value) |
-{ |
- if (value.isPrimitiveValue()) { |
- const CSSPrimitiveValue& primitiveValue = blink::toCSSPrimitiveValue(value); |
- if (primitiveValue.cssCalcValue()) |
- return true; |
- |
- CSSPrimitiveValue::LengthUnitType type; |
- // Only returns true if the type is a primitive length unit. |
- return CSSPrimitiveValue::unitTypeToLengthUnitType(primitiveValue.primitiveType(), type); |
- } |
- return value.isCalcValue(); |
-} |
- |
-PassOwnPtrWillBeRawPtr<InterpolableValue> LengthStyleInterpolation::lengthToInterpolableValue(CSSValue* value) |
-{ |
- OwnPtrWillBeRawPtr<InterpolableList> result = InterpolableList::create(CSSPrimitiveValue::LengthUnitTypeCount); |
- CSSPrimitiveValue* primitive = toCSSPrimitiveValue(value); |
- |
- CSSLengthArray array; |
- for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) |
- array.append(0); |
- primitive->accumulateLengthArray(array); |
- |
- for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) |
- result->set(i, InterpolableNumber::create(array.at(i))); |
- |
- return result.release(); |
-} |
- |
-namespace { |
- |
-static CSSPrimitiveValue::UnitType toUnitType(int lengthUnitType) |
-{ |
- return static_cast<CSSPrimitiveValue::UnitType>(CSSPrimitiveValue::lengthUnitTypeToUnitType(static_cast<CSSPrimitiveValue::LengthUnitType>(lengthUnitType))); |
-} |
- |
-static PassRefPtrWillBeRawPtr<CSSCalcExpressionNode> constructCalcExpression(PassRefPtrWillBeRawPtr<CSSCalcExpressionNode> previous, InterpolableList* list, size_t position) |
-{ |
- while (position != CSSPrimitiveValue::LengthUnitTypeCount) { |
- const InterpolableNumber *subValue = toInterpolableNumber(list->get(position)); |
- if (subValue->value()) { |
- RefPtrWillBeRawPtr<CSSCalcExpressionNode> next; |
- if (previous) |
- next = CSSCalcValue::createExpressionNode(previous, CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(subValue->value(), toUnitType(position))), CalcAdd); |
- else |
- next = CSSCalcValue::createExpressionNode(CSSPrimitiveValue::create(subValue->value(), toUnitType(position))); |
- return constructCalcExpression(next, list, position + 1); |
- } |
- position++; |
- } |
- return previous; |
-} |
- |
-} |
- |
-PassRefPtrWillBeRawPtr<CSSValue> LengthStyleInterpolation::interpolableValueToLength(InterpolableValue* value, ValueRange range) |
-{ |
- InterpolableList* listValue = toInterpolableList(value); |
- unsigned unitCount = 0; |
- for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) { |
- const InterpolableNumber* subValue = toInterpolableNumber(listValue->get(i)); |
- if (subValue->value()) { |
- unitCount++; |
- } |
- } |
- |
- switch (unitCount) { |
- case 0: |
- return CSSPrimitiveValue::create(0, CSSPrimitiveValue::CSS_PX); |
- case 1: |
- for (size_t i = 0; i < CSSPrimitiveValue::LengthUnitTypeCount; i++) { |
- const InterpolableNumber* subValue = toInterpolableNumber(listValue->get(i)); |
- double value = subValue->value(); |
- if (value) { |
- if (range == ValueRangeNonNegative && value < 0) |
- value = 0; |
- return CSSPrimitiveValue::create(value, toUnitType(i)); |
- } |
- } |
- ASSERT_NOT_REACHED(); |
- default: |
- return CSSPrimitiveValue::create(CSSCalcValue::create(constructCalcExpression(nullptr, listValue, 0), range)); |
- } |
-} |
- |
-void LengthStyleInterpolation::apply(StyleResolverState& state) const |
-{ |
- StyleBuilder::applyProperty(m_id, state, interpolableValueToLength(m_cachedValue.get(), m_range).get()); |
-} |
- |
-void LengthStyleInterpolation::trace(Visitor* visitor) |
-{ |
- StyleInterpolation::trace(visitor); |
-} |
- |
-} |