Skip to main content

Animations

Struct Animations 

Source
pub struct Animations { /* private fields */ }
Expand description

Registry/scheduler for running Tweens bound to apply callbacks.

Call tick once per [Event::Tick] (crate::event::Event::Tick); it advances every entry by exactly one tick, applies the sampled values, accumulates the dirty rects the callbacks report (at most one per active animation per tick), and auto-removes completed entries after their terminal value has been applied — so a slide’s final frame lands exactly on its rest position.

Implementations§

Source§

impl Animations

Source

pub fn new() -> Self

Create an empty registry.

Source

pub fn register(&mut self, tween: Tween, apply: ApplyFn) -> AnimId

Register a tween bound to an apply callback. Returns the handle for later cancel.

Source

pub fn tick(&mut self) -> bool

Advance all animations by one tick, apply their values, and drop completed entries. Returns true while anything remains active.

The dirty rects reported by the apply callbacks during this tick replace those of the previous tick — read them via dirty_rects or dirty_union before the next call.

Source

pub fn any_active(&self) -> bool

Returns true while any animation is registered (a repaint is pending). Does not advance state.

Source

pub fn len(&self) -> usize

Number of registered animations.

Source

pub fn is_empty(&self) -> bool

Returns true when no animations are registered.

Source

pub fn dirty_rects(&self) -> &[Rect]

Dirty rects reported during the most recent tick, one per animation whose callback returned a region. ANIM does not merge or clip — feed these to the consumer’s planner.

Source

pub fn dirty_union(&self) -> Option<Rect>

Axis-aligned union of dirty_rects, or None when the last tick changed nothing visible.

Source

pub fn cancel(&mut self, id: AnimId) -> bool

Remove an animation without applying a final value. Returns true if the handle was registered.

Source

pub fn pulse_color( &mut self, from: Color, to: Color, half_period: u32, easing: Easing, apply: Box<dyn FnMut(Color) -> Option<Rect>>, ) -> AnimId

Attention pulse: ping-pong a color between from and to with half_period ticks per direction, forever (until cancelled).

apply receives the interpolated color each tick and returns the invalidated region (typically the pulsing widget’s bounds).

Source

pub fn slide_rect( &mut self, from: Rect, to: Rect, duration: u32, easing: Easing, apply: Box<dyn FnMut(Rect) -> Option<Rect>>, ) -> AnimId

Position slide: move a rect from from to to over duration ticks, one-shot (show/hide of a container).

apply receives the interpolated rect each tick and returns the invalidated region. The recommended dirty region is previous_bounds.union(new_bounds) so both the vacated and the newly covered pixels repaint.

Trait Implementations§

Source§

impl Default for Animations

Source§

fn default() -> Animations

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.