| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_GFX_ANIMATION_ANIMATION_CONTAINER_ELEMENT_H_ |
| #define UI_GFX_ANIMATION_ANIMATION_CONTAINER_ELEMENT_H_ |
| |
| #include "base/time/time.h" |
| #include "ui/gfx/animation/animation_export.h" |
| |
| namespace gfx { |
| |
| // Interface for the elements the AnimationContainer contains. This is |
| // implemented by Animation. |
| class ANIMATION_EXPORT AnimationContainerElement { |
| public: |
| // Sets the start of the animation. This is invoked from |
| // AnimationContainer::Start. |
| virtual void SetStartTime(base::TimeTicks start_time) = 0; |
| |
| // Invoked when the animation is to progress. |
| virtual void Step(base::TimeTicks time_now) = 0; |
| |
| // Returns the time interval of the animation. If an Element needs to change |
| // this it should first invoke Stop, then Start. |
| virtual base::TimeDelta GetTimerInterval() const = 0; |
| |
| protected: |
| virtual ~AnimationContainerElement() {} |
| }; |
| |
| } // namespace gfx |
| |
| #endif // UI_GFX_ANIMATION_ANIMATION_CONTAINER_ELEMENT_H_ |