123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Copyright 2018 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_LOTTIE_ANIMATION_OBSERVER_H_
- #define UI_LOTTIE_ANIMATION_OBSERVER_H_
- #include "base/component_export.h"
- #include "base/observer_list_types.h"
- namespace lottie {
- class Animation;
- class COMPONENT_EXPORT(UI_LOTTIE) AnimationObserver
- : public base::CheckedObserver {
- public:
- // Called when the animation started playing.
- virtual void AnimationWillStartPlaying(const Animation* animation) {}
- // Called when one animation cycle has completed. This happens when a linear
- // animation has reached its end, or a loop/throbbing animation has finished
- // a cycle.
- virtual void AnimationCycleEnded(const Animation* animation) {}
- // Called when the animation has successfully resumed.
- virtual void AnimationResuming(const Animation* animation) {}
- // Called after each animation frame is painted. Note this is not synonymous
- // with the frame ultimately being rendered on screen; it only means the frame
- // has been submitted to the rest of the graphics pipeline for rendering.
- //
- // |t| is the normalized timestamp in range [0, 1] of the frame just painted.
- virtual void AnimationFramePainted(const Animation* animation, float t) {}
- // Called in the Animation's destructor. Observers may remove themselves
- // within their implementation.
- virtual void AnimationIsDeleting(const Animation* animation) {}
- protected:
- ~AnimationObserver() override = default;
- };
- } // namespace lottie
- #endif // UI_LOTTIE_ANIMATION_OBSERVER_H_
|