Animation
Object Hierarchy:
Description:
A base class for animations.
`AdwAnimation` represents an animation on a widget. It has a target that provides a value to animate, and a state indicating whether the animation hasn't been started yet, is playing, paused or finished.
Currently there are two concrete animation types: [class@TimedAnimation] and [class@SpringAnimation].
`AdwAnimation` will automatically skip the animation if [property@Animation:widget] is unmapped, or if [ property@Gtk.Settings:gtk-enable-animations] is `FALSE`.
The [signal@Animation:AdwAnimation:done
] signal can be used to perform an action after the animation ends, for example hiding a
widget after animating its [property@Gtk.Widget:opacity] to 0.
`AdwAnimation` will be kept alive while the animation is playing. As such, it's safe to create an animation, start it and immediately unref it: A fire-and-forget animation:
```c static void animation_cb (double value, MyObject *self) { // Do something with value
}
static void my_object_animate (MyObject *self) { AdwAnimationTarget *target = adw_callback_animation_target_new ((AdwAnimationTargetFunc) animation_cb, self, NULL); g_autoptr (AdwAnimation) animation = adw_timed_animation_new (widget, 0, 1, 250, target);
adw_animation_play (animation); } ```
If there's a chance the previous animation for the same target hasn't yet finished, the previous animation should be stopped first, or the existing `AdwAnimation` object can be reused.