1.10 |
Animates a property of a widget. More...
#include <animation.h>
Public Types | |
using | PropertyCallback = std::function< void(T v)> |
Property callback type. | |
using | Value = T |
Alias for the value type of the animator. | |
Public Member Functions | |
PropertyAnimatorType (std::chrono::milliseconds duration, const EasingFunc &func=easing_linear) | |
PropertyAnimatorType (T start=T(), T end=T(), std::chrono::milliseconds duration=std::chrono::milliseconds(), const EasingFunc &func=easing_linear) | |
void | clear_change_callbacks () |
Clear all callbacks. | |
void | on_change (PropertyCallback callback) |
Register a callback handler for when the value changes. | |
Public Member Functions inherited from AutoAnimation | |
AutoAnimation (EasingScalar start, EasingScalar end, std::chrono::milliseconds duration, const EasingFunc &func=easing_linear, const AnimationCallback &callback=nullptr) | |
AutoAnimation (std::chrono::milliseconds duration, const EasingFunc &func=easing_linear, const AnimationCallback &callback=nullptr) | |
void | interval (std::chrono::milliseconds duration) |
Change the interval of the internal timer. | |
void | resume () override |
Resume the animation from its current value. | |
void | start () override |
Start the animation from its start value. | |
void | stop () override |
Stop the animation. | |
Public Member Functions inherited from Animation | |
Animation (EasingScalar start, EasingScalar end, const AnimationCallback &callback, std::chrono::milliseconds duration, EasingFunc func=easing_linear) | |
EGT_NODISCARD EasingScalar | current () const |
Get the current value. | |
void | duration (std::chrono::milliseconds dur) |
void | easing_func (EasingFunc func) |
EGT_NODISCARD EasingScalar | ending () const |
Get the ending value. | |
void | ending (EasingScalar end) |
bool | next () override |
Periodic call to the animation. | |
void | reverse (bool rev) |
void | rounding (bool enable) |
Should the value be rounded? | |
EGT_NODISCARD EasingScalar | starting () const |
Get the starting value. | |
void | starting (EasingScalar start) |
Public Member Functions inherited from AnimationBase | |
AnimationBase ()=default | |
AnimationBase (AnimationBase &&) noexcept=default | |
AnimationBase (const AnimationBase &)=delete | |
virtual | ~AnimationBase () noexcept=default |
void | add_callback (AnimationCallback callback) |
Register a callback for the animation. | |
void | clear_callbacks () |
Clear all callbacks. | |
AnimationBase & | operator= (AnimationBase &&) noexcept=default |
AnimationBase & | operator= (const AnimationBase &)=delete |
virtual EGT_NODISCARD bool | running () const |
Returns true if the animation is currently running. | |
Protected Types | |
using | CallbackArray = std::vector< PropertyCallback > |
Property callback array type. | |
Protected Member Functions | |
void | invoke_handlers (T value) |
Invoke handlers with the specified value. | |
Protected Attributes | |
CallbackArray | m_callbacks |
Registered callbacks for the animation. | |
Protected Attributes inherited from AutoAnimation | |
PeriodicTimer | m_timer |
Periodic timer used to run the animation. | |
Protected Attributes inherited from Animation | |
EasingScalar | m_current {0} |
Current value. | |
std::chrono::milliseconds | m_duration {} |
Duration of the animation. | |
EasingFunc | m_easing {easing_linear} |
Easing function. | |
EasingScalar | m_elapsed {0} |
Keep track of the progress of the animation. | |
EasingScalar | m_end {0} |
Ending value. | |
std::chrono::time_point< std::chrono::steady_clock > | m_intermediate_time |
Absolute time used to track the animation time elapsed. | |
bool | m_reverse {false} |
Is the animation running in reverse. | |
bool | m_round {false} |
Should the dispatched value be rounded? | |
EasingScalar | m_start {0} |
Starting value. | |
Protected Attributes inherited from AnimationBase | |
std::vector< AnimationCallback > | m_callbacks |
Registered callbacks for the animation. | |
bool | m_running {false} |
The running state of the animation. | |
Animates a property of a widget.
This as a utility class that makes animating a specific property of a widget easier. Any property that matches PropertyAnimator::property_callback_t can be used.
|
protected |
Property callback array type.
using PropertyCallback = std::function<void (T v)> |
Property callback type.
using Value = T |
Alias for the value type of the animator.
|
inlineexplicit |
[in] | start | The starting value of the animation. |
[in] | end | The ending value of the animation. |
[in] | duration | The duration of the animation. |
[in] | func | The easing function to use. |
|
inlineexplicit |
[in] | duration | The duration of the animation. |
[in] | func | The easing function to use. |
|
inline |
Clear all callbacks.
|
inlineprotected |
Invoke handlers with the specified value.
|
inline |
Register a callback handler for when the value changes.
[in] | callback | The callback function to invoke. |
|
protected |
Registered callbacks for the animation.