1// Copyright (c) 2012 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 UI_COMPOSITOR_FLOAT_ANIMATION_CURVE_ADAPTER_H_
6#define UI_COMPOSITOR_FLOAT_ANIMATION_CURVE_ADAPTER_H_
7
8#include "base/time/time.h"
9#include "cc/animation/animation_curve.h"
10#include "ui/gfx/animation/tween.h"
11
12namespace ui {
13
14class FloatAnimationCurveAdapter : public cc::FloatAnimationCurve {
15 public:
16  FloatAnimationCurveAdapter(gfx::Tween::Type tween_type,
17                             float initial_value,
18                             float target_value,
19                             base::TimeDelta duration);
20
21  virtual ~FloatAnimationCurveAdapter() { }
22
23  // FloatAnimationCurve implementation.
24  virtual double Duration() const OVERRIDE;
25  virtual scoped_ptr<cc::AnimationCurve> Clone() const OVERRIDE;
26  virtual float GetValue(double t) const OVERRIDE;
27
28 private:
29  gfx::Tween::Type tween_type_;
30  float initial_value_;
31  float target_value_;
32  base::TimeDelta duration_;
33};
34
35}  // namespace ui
36
37#endif  // UI_COMPOSITOR_FLOAT_ANIMATION_CURVE_ADAPTER_H_
38