mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2025-04-10 19:15:13 +00:00
46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
// SPDX-License-Identifier: MIT
|
|
//
|
|
// EmulationStation Desktop Edition
|
|
// AnimationController.h
|
|
//
|
|
// Basic animation controls.
|
|
//
|
|
|
|
#ifndef ES_CORE_ANIMATIONS_ANIMATION_CONTROLLER_H
|
|
#define ES_CORE_ANIMATIONS_ANIMATION_CONTROLLER_H
|
|
|
|
#include <functional>
|
|
|
|
class Animation;
|
|
|
|
class AnimationController
|
|
{
|
|
public:
|
|
// Takes ownership of anim (will delete in destructor).
|
|
AnimationController(Animation* anim,
|
|
int delay = 0,
|
|
std::function<void()> finishedCallback = nullptr,
|
|
bool reverse = false);
|
|
virtual ~AnimationController();
|
|
|
|
// Returns true if the animation is complete.
|
|
bool update(int deltaTime);
|
|
|
|
bool isReversed() const { return mReverse; }
|
|
int getTime() const { return mTime; }
|
|
int getDelay() const { return mDelay; }
|
|
const std::function<void()>& getFinishedCallback() const { return mFinishedCallback; }
|
|
Animation* getAnimation() const { return mAnimation; }
|
|
|
|
void removeFinishedCallback() { mFinishedCallback = nullptr; }
|
|
|
|
private:
|
|
Animation* mAnimation;
|
|
std::function<void()> mFinishedCallback;
|
|
bool mReverse;
|
|
int mTime;
|
|
int mDelay;
|
|
};
|
|
|
|
#endif // ES_CORE_ANIMATIONS_ANIMATION_CONTROLLER_H
|