Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(280)

Unified Diff: third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h

Issue 2611123004: Combine {Legacy,}StyleInterpolation.h (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h
diff --git a/third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h b/third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h
index 5d9dc21c3c844be66792628313e759070bf17ab7..0a0d294e5e37197e2ab7a1733e6225c5a484b156 100644
--- a/third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h
+++ b/third_party/WebKit/Source/core/animation/LegacyStyleInterpolation.h
@@ -5,12 +5,49 @@
#ifndef LegacyStyleInterpolation_h
#define LegacyStyleInterpolation_h
-#include "core/animation/StyleInterpolation.h"
+#include "core/CSSPropertyNames.h"
+#include "core/CoreExport.h"
+#include "core/animation/Interpolation.h"
+#include "core/animation/PropertyHandle.h"
#include "core/css/resolver/AnimatedStyleBuilder.h"
#include <memory>
namespace blink {
+class StyleResolverState;
+
+class CORE_EXPORT 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;
+
+ bool isStyleInterpolation() const final { return true; }
+
+ CSSPropertyID id() const { return m_id; }
+
+ PropertyHandle getProperty() const final { return PropertyHandle(id()); }
+
+ protected:
+ CSSPropertyID m_id;
+
+ StyleInterpolation(std::unique_ptr<InterpolableValue> start,
+ std::unique_ptr<InterpolableValue> end,
+ CSSPropertyID id)
+ : Interpolation(std::move(start), std::move(end)), m_id(id) {}
+};
+
+DEFINE_TYPE_CASTS(StyleInterpolation,
+ Interpolation,
+ value,
+ value->isStyleInterpolation(),
+ value.isStyleInterpolation());
+
class LegacyStyleInterpolation : public StyleInterpolation {
public:
static PassRefPtr<LegacyStyleInterpolation> create(

Powered by Google App Engine
This is Rietveld 408576698