Home | History | Annotate | Download | only in compositor_bindings
      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