Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / cc / blink / web_animation_impl.h
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 CC_BLINK_WEB_ANIMATION_IMPL_H_
6 #define CC_BLINK_WEB_ANIMATION_IMPL_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "cc/blink/cc_blink_export.h"
10 #include "third_party/WebKit/public/platform/WebCompositorAnimation.h"
11
12 namespace cc {
13 class Animation;
14 }
15
16 namespace blink {
17 class WebCompositorAnimationCurve;
18 }
19
20 namespace cc_blink {
21
22 class WebCompositorAnimationImpl : public blink::WebCompositorAnimation {
23  public:
24   CC_BLINK_EXPORT WebCompositorAnimationImpl(
25       const blink::WebCompositorAnimationCurve& curve,
26       TargetProperty target,
27       int animation_id,
28       int group_id);
29   virtual ~WebCompositorAnimationImpl();
30
31   // blink::WebCompositorAnimation implementation
32   virtual int id();
33   virtual int group();
34   virtual TargetProperty targetProperty() const;
35   virtual double iterations() const;
36   virtual void setIterations(double iterations);
37   virtual double iterationStart() const;
38   virtual void setIterationStart(double iteration_start);
39   virtual double startTime() const;
40   virtual void setStartTime(double monotonic_time);
41   virtual double timeOffset() const;
42   virtual void setTimeOffset(double monotonic_time);
43   virtual Direction direction() const;
44   virtual void setDirection(Direction);
45   virtual double playbackRate() const;
46   virtual void setPlaybackRate(double playback_rate);
47   virtual FillMode fillMode() const;
48   virtual void setFillMode(blink::WebCompositorAnimation::FillMode fill_mode);
49   scoped_ptr<cc::Animation> PassAnimation();
50
51  private:
52   scoped_ptr<cc::Animation> animation_;
53
54   DISALLOW_COPY_AND_ASSIGN(WebCompositorAnimationImpl);
55 };
56
57 }  // namespace cc_blink
58
59 #endif  // CC_BLINK_WEB_ANIMATION_IMPL_H_