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
12namespace cc {
13
14// This abstract class represents the compositor-side analogy of
15// ScrollbarAnimator.  Individual platforms should subclass it to provide
16// specialized implementation.
17class CC_EXPORT ScrollbarAnimationController {
18 public:
19  virtual ~ScrollbarAnimationController() {}
20
21  virtual bool IsScrollGestureInProgress() const = 0;
22  virtual bool IsAnimating() const = 0;
23  virtual base::TimeDelta DelayBeforeStart(base::TimeTicks now) const = 0;
24
25  virtual bool Animate(base::TimeTicks now) = 0;
26  virtual void DidScrollGestureBegin() = 0;
27  virtual void DidScrollGestureEnd(base::TimeTicks now) = 0;
28  virtual void DidProgrammaticallyUpdateScroll(base::TimeTicks now) = 0;
29};
30
31}  // namespace cc
32
33#endif  // CC_ANIMATION_SCROLLBAR_ANIMATION_CONTROLLER_H_
34