Animation

class Animation(**properties: Any)

Superclasses: Object

Subclasses: SpringAnimation, TimedAnimation

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 widget is unmapped, or if gtk_enable_animations is FALSE.

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

Methods

class Animation
get_follow_enable_animations_setting() bool

Gets whether self should be skipped when animations are globally disabled.

Added in version 1.3.

get_state() AnimationState

Gets the current value of self.

The state indicates whether self is currently playing, paused, finished or hasn’t been started yet.

get_target() AnimationTarget

Gets the target self animates.

get_value() float

Gets the current value of self.

get_widget() Widget

Gets the widget self was created for.

It provides the frame clock for the animation. It’s not strictly necessary for this widget to be same as the one being animated.

The widget must be mapped in order for the animation to work. If it’s not mapped, or if it gets unmapped during an ongoing animation, the animation will be automatically skipped.

pause() None

Pauses a playing animation for self.

Does nothing if the current state of self isn’t ADW_ANIMATION_PLAYING.

Sets state to ADW_ANIMATION_PAUSED.

play() None

Starts the animation for self.

If the animation is playing, paused or has been completed, restarts it from the beginning. This allows to easily play an animation regardless of whether it’s already playing or not.

Sets state to ADW_ANIMATION_PLAYING.

The animation will be automatically skipped if widget is unmapped, or if gtk_enable_animations is FALSE.

As such, it’s not guaranteed that the animation will actually run. For example, when using idle_add and starting an animation immediately afterwards, it’s entirely possible that the idle callback will run after the animation has already finished, and not while it’s playing.

reset() None

Resets the animation for self.

Sets state to ADW_ANIMATION_IDLE.

resume() None

Resumes a paused animation for self.

This function must only be used if the animation has been paused with pause.

Sets state to ADW_ANIMATION_PLAYING.

set_follow_enable_animations_setting(setting: bool) None

Sets whether to skip self when animations are globally disabled.

The default behavior is to skip the animation. Set to FALSE to disable this behavior.

This can be useful for cases where animation is essential, like spinners, or in demo applications. Most other animations should keep it enabled.

See gtk_enable_animations.

Added in version 1.3.

Parameters:

setting – whether to follow the global setting

set_target(target: AnimationTarget) None

Sets the target self animates to target.

Parameters:

target – an animation target

skip() None

Skips the animation for self.

If the animation hasn’t been started yet, is playing, or is paused, instantly skips the animation to the end and causes done to be emitted.

Sets state to ADW_ANIMATION_FINISHED.

Properties

class Animation
props.follow_enable_animations_setting: bool

Whether to skip the animation when animations are globally disabled.

The default behavior is to skip the animation. Set to FALSE to disable this behavior.

This can be useful for cases where animation is essential, like spinners, or in demo applications. Most other animations should keep it enabled.

See gtk_enable_animations.

Added in version 1.3.

props.state: AnimationState

The animation state.

The state indicates whether the animation is currently playing, paused, finished or hasn’t been started yet.

props.target: AnimationTarget

The target to animate.

props.value: float

The current value of the animation.

props.widget: Widget

The animation widget.

It provides the frame clock for the animation. It’s not strictly necessary for this widget to be same as the one being animated.

The widget must be mapped in order for the animation to work. If it’s not mapped, or if it gets unmapped during an ongoing animation, the animation will be automatically skipped.

Signals

class Animation.signals
done() None

This signal is emitted when the animation has been completed, either on its own or via calling skip.

Fields

class Animation
parent_instance