Package org.gnome.adw

Class Animation

java.lang.Object
All Implemented Interfaces:
Proxy
Direct Known Subclasses:
Animation.AnimationImpl, SpringAnimation, TimedAnimation

@Generated("io.github.jwharm.JavaGI") public abstract class Animation extends GObject
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: TimedAnimation and SpringAnimation.

AdwAnimation will automatically skip the animation if Animation:widget is unmapped, or if Gtk.Settings:gtk-enable-animations is FALSE.

The Animation::done signal can be used to perform an action after the animation ends, for example hiding a widget after animating its 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:

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.