summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/animation/interpolation/StyleInterpolation.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/animation/interpolation/StyleInterpolation.h')
-rw-r--r--chromium/third_party/WebKit/Source/core/animation/interpolation/StyleInterpolation.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/chromium/third_party/WebKit/Source/core/animation/interpolation/StyleInterpolation.h b/chromium/third_party/WebKit/Source/core/animation/interpolation/StyleInterpolation.h
new file mode 100644
index 00000000000..5c277439ffd
--- /dev/null
+++ b/chromium/third_party/WebKit/Source/core/animation/interpolation/StyleInterpolation.h
@@ -0,0 +1,48 @@
+// 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.
+
+#ifndef StyleInterpolation_h
+#define StyleInterpolation_h
+
+#include "core/CSSPropertyNames.h"
+#include "core/animation/interpolation/Interpolation.h"
+
+namespace WebCore {
+
+class StyleResolverState;
+
+class StyleInterpolation : public Interpolation {
+public:
+ // 1) convert m_cachedValue into an X
+ // 2) shove X into StyleResolverState
+ // X can be:
+ // (1) a CSSValue (and applied via StyleBuilder::applyProperty)
+ // (2) an AnimatableValue (and applied via // AnimatedStyleBuilder::applyProperty)
+ // (3) a custom value that is inserted directly into the StyleResolverState.
+ virtual void apply(StyleResolverState&) const = 0;
+
+ virtual bool isStyleInterpolation() const OVERRIDE FINAL { return true; }
+
+ CSSPropertyID id() const { return m_id; }
+
+ virtual void trace(Visitor* visitor) OVERRIDE
+ {
+ Interpolation::trace(visitor);
+ }
+
+protected:
+ CSSPropertyID m_id;
+
+ StyleInterpolation(PassOwnPtrWillBeRawPtr<InterpolableValue> start, PassOwnPtrWillBeRawPtr<InterpolableValue> end, CSSPropertyID id)
+ : Interpolation(start, end)
+ , m_id(id)
+ {
+ }
+};
+
+DEFINE_TYPE_CASTS(StyleInterpolation, Interpolation, value, value->isStyleInterpolation(), value.isStyleInterpolation());
+
+}
+
+#endif