- add sources.
[platform/framework/web/crosswalk.git] / src / cc / animation / scrollbar_animation_controller.h
1 // Copyright 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 CC_ANIMATION_SCROLLBAR_ANIMATION_CONTROLLER_H_
6 #define CC_ANIMATION_SCROLLBAR_ANIMATION_CONTROLLER_H_
7
8 #include "base/time/time.h"
9 #include "cc/base/cc_export.h"
10 #include "ui/gfx/vector2d_f.h"
11
12 namespace cc {
13
14 // This abstract class represents the compositor-side analogy of
15 // ScrollbarAnimator.  Individual platforms should subclass it to provide
16 // specialized implementation.
17 class CC_EXPORT ScrollbarAnimationController {
18  public:
19   virtual ~ScrollbarAnimationController() {}
20
21   virtual bool IsAnimating() const = 0;
22   virtual base::TimeDelta DelayBeforeStart(base::TimeTicks now) const = 0;
23
24   virtual bool Animate(base::TimeTicks now) = 0;
25   virtual void DidScrollGestureBegin() = 0;
26   virtual void DidScrollGestureEnd(base::TimeTicks now) = 0;
27   virtual void DidMouseMoveOffScrollbar(base::TimeTicks now) = 0;
28
29   // Returns true if we should start an animation.
30   virtual bool DidScrollUpdate(base::TimeTicks now) = 0;
31   virtual bool DidMouseMoveNear(base::TimeTicks now, float distance) = 0;
32 };
33
34 }  // namespace cc
35
36 #endif  // CC_ANIMATION_SCROLLBAR_ANIMATION_CONTROLLER_H_