1// Copyright (c) 2011 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_GFX_ANIMATION_ANIMATION_CONTAINER_ELEMENT_H_
6#define UI_GFX_ANIMATION_ANIMATION_CONTAINER_ELEMENT_H_
7
8#include "base/time/time.h"
9#include "ui/gfx/gfx_export.h"
10
11namespace gfx {
12
13// Interface for the elements the AnimationContainer contains. This is
14// implemented by Animation.
15class GFX_EXPORT AnimationContainerElement {
16 public:
17  // Sets the start of the animation. This is invoked from
18  // AnimationContainer::Start.
19  virtual void SetStartTime(base::TimeTicks start_time) = 0;
20
21  // Invoked when the animation is to progress.
22  virtual void Step(base::TimeTicks time_now) = 0;
23
24  // Returns the time interval of the animation. If an Element needs to change
25  // this it should first invoke Stop, then Start.
26  virtual base::TimeDelta GetTimerInterval() const = 0;
27
28 protected:
29  virtual ~AnimationContainerElement() {}
30};
31
32}  // namespace gfx
33
34#endif  // UI_GFX_ANIMATION_ANIMATION_CONTAINER_ELEMENT_H_
35