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 CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_ANIMATION_IMPL_H_ 6 #define CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_ANIMATION_IMPL_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "content/common/content_export.h" 10 #include "third_party/WebKit/public/platform/WebAnimation.h" 11 12 namespace cc { 13 class Animation; 14 } 15 16 namespace blink { 17 class WebAnimationCurve; 18 } 19 20 namespace content { 21 22 class WebAnimationImpl : public blink::WebAnimation { 23 public: 24 CONTENT_EXPORT WebAnimationImpl( 25 const blink::WebAnimationCurve& curve, 26 TargetProperty target, 27 int animation_id, 28 int group_id); 29 virtual ~WebAnimationImpl(); 30 31 // blink::WebAnimation implementation 32 virtual int id(); 33 virtual TargetProperty targetProperty() const; 34 virtual int iterations() const; 35 virtual void setIterations(int iterations); 36 virtual double startTime() const; 37 virtual void setStartTime(double monotonic_time); 38 virtual double timeOffset() const; 39 virtual void setTimeOffset(double monotonic_time); 40 #if WEB_ANIMATION_SUPPORTS_FULL_DIRECTION 41 virtual Direction direction() const; 42 virtual void setDirection(Direction); 43 #else 44 virtual bool alternatesDirection() const; 45 virtual void setAlternatesDirection(bool alternates); 46 #endif 47 48 scoped_ptr<cc::Animation> PassAnimation(); 49 50 private: 51 scoped_ptr<cc::Animation> animation_; 52 53 DISALLOW_COPY_AND_ASSIGN(WebAnimationImpl); 54 }; 55 56 } // namespace content 57 58 #endif // CONTENT_RENDERER_COMPOSITOR_BINDINGS_WEB_ANIMATION_IMPL_H_ 59 60