OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef LengthStyleInterpolation_h | |
6 #define LengthStyleInterpolation_h | |
7 | |
8 #include "core/animation/interpolation/StyleInterpolation.h" | |
9 #include "platform/Length.h" | |
10 | |
11 namespace blink { | |
12 | |
13 class LengthStyleInterpolation : public StyleInterpolation { | |
14 public: | |
15 static PassRefPtrWillBeRawPtr<LengthStyleInterpolation> create(CSSValue* sta
rt, CSSValue* end, CSSPropertyID id, ValueRange range) | |
16 { | |
17 return adoptRefWillBeNoop(new LengthStyleInterpolation(lengthToInterpola
bleValue(start), lengthToInterpolableValue(end), id, range)); | |
18 } | |
19 | |
20 static bool canCreateFrom(const CSSValue&); | |
21 | |
22 virtual void apply(StyleResolverState&) const OVERRIDE; | |
23 | |
24 virtual void trace(Visitor*) OVERRIDE; | |
25 | |
26 private: | |
27 LengthStyleInterpolation(PassOwnPtrWillBeRawPtr<InterpolableValue> start, Pa
ssOwnPtrWillBeRawPtr<InterpolableValue> end, CSSPropertyID id, ValueRange range
) | |
28 : StyleInterpolation(start, end, id) | |
29 , m_range(range) | |
30 { } | |
31 | |
32 static PassOwnPtrWillBeRawPtr<InterpolableValue> lengthToInterpolableValue(C
SSValue*); | |
33 static PassRefPtrWillBeRawPtr<CSSValue> interpolableValueToLength(Interpolab
leValue*, ValueRange); | |
34 | |
35 ValueRange m_range; | |
36 | |
37 friend class AnimationLengthStyleInterpolationTest; | |
38 }; | |
39 | |
40 } | |
41 | |
42 #endif | |
OLD | NEW |