Skip to main content

Animation

Struct Animation 

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

Tracks the progress of an animation.

Implementations§

Source§

impl Animation

Source

pub const TYPE: &'static TypeInfo = <Animation as crate::StaticType>::TYPE

The runtime type of this class.

Source

pub fn to_ref(&self) -> Ref<Animation>

Returns a strong reference to this object.

Source§

impl Animation

Source

pub fn duration_property() -> &'static DirectProperty<Animation, TimeSpan>

Defines the Duration property: the active time of one iteration.

Source

pub fn duration(&self) -> TimeSpan

Source

pub fn set_duration(&self, value: TimeSpan)

Source

pub fn iteration_count_property() -> &'static DirectProperty<Animation, IterationCount>

Defines the IterationCount property: the repeat count.

Source

pub fn iteration_count(&self) -> IterationCount

Source

pub fn set_iteration_count(&self, value: IterationCount)

Source

pub fn playback_direction_property() -> &'static DirectProperty<Animation, PlaybackDirection>

Defines the PlaybackDirection property.

Source

pub fn playback_direction(&self) -> PlaybackDirection

Source

pub fn set_playback_direction(&self, value: PlaybackDirection)

Source

pub fn playback_behavior_property() -> &'static DirectProperty<Animation, PlaybackBehavior>

Defines the PlaybackBehavior property: whether the animation pauses when its target is not effectively visible.

Source

pub fn playback_behavior(&self) -> PlaybackBehavior

Source

pub fn set_playback_behavior(&self, value: PlaybackBehavior)

Source

pub fn fill_mode_property() -> &'static DirectProperty<Animation, FillMode>

Defines the FillMode property: the value fill mode.

Source

pub fn fill_mode(&self) -> FillMode

Source

pub fn set_fill_mode(&self, value: FillMode)

Source

pub fn delay_property() -> &'static DirectProperty<Animation, TimeSpan>

Defines the Delay property: the initial delay time.

Source

pub fn delay(&self) -> TimeSpan

Source

pub fn set_delay(&self, value: TimeSpan)

Source

pub fn delay_between_iterations_property() -> &'static DirectProperty<Animation, TimeSpan>

Defines the DelayBetweenIterations property.

Source

pub fn delay_between_iterations(&self) -> TimeSpan

Source

pub fn set_delay_between_iterations(&self, value: TimeSpan)

Source

pub fn easing_property() -> &'static DirectProperty<Animation, Easing>

Defines the Easing property: the easing function to be used.

Source

pub fn speed_ratio_property() -> &'static DirectProperty<Animation, f64>

Defines the SpeedRatio property: the speed multiple.

Source

pub fn construct() -> Self

Creates the class data; see FerroObject::construct.

Source

pub fn new() -> Ref<Self>

Source

pub fn easing(&self) -> Easing

The easing function to be used for this animation.

Source

pub fn set_easing(&self, value: impl Into<Easing>)

Source

pub fn speed_ratio(&self) -> f64

The speed multiple for this animation.

Source

pub fn set_speed_ratio(&self, value: f64)

Source

pub fn children(&self) -> KeyFrames

The children of the animation: its key frames.

Source

pub fn apply( &self, control: &Animatable, clock: Option<Rc<dyn IClock>>, match_: Rc<dyn IObservable<bool>>, on_complete: Option<Rc<dyn Fn()>>, is_manually_started: bool, ) -> Rc<dyn IDisposable>

Applies the animation to control: it runs while match_ is true, on clock (or on the control’s clock, or on the global clock). on_complete runs when the animation ends by itself. is_manually_started tells an animation started by code from one started by a style. Disposing the result removes the animation.

Source

pub fn apply_for_preview( &self, control: &Animatable, clock: Option<Rc<dyn IClock>>, on_complete: Option<Rc<dyn Fn()>>, ) -> Rc<dyn IDisposable>

Applies an isolated snapshot using the framework animators, retaining final fill and automatically created transforms at animation priority. Disposing the result restores the control’s underlying values and bindings, including after completion. This is intended for interactive authoring and inspection; ordinary apply retains its application semantics, including committing forward fill to a local value.

Source

pub fn run_async( &self, control: &Animatable, cancellation_token: CancellationToken, ) -> AnimationTask ⓘ

Starts the animation on control and returns a task that completes when it has ended or cancellation_token was cancelled.

Source

pub fn run_async_with_clock( &self, control: &Animatable, clock: Option<Rc<dyn IClock>>, cancellation_token: CancellationToken, ) -> AnimationTask ⓘ

run_async on an explicit clock.

Source§

impl Animation

Source

pub fn set_animator( setter: &Rc<dyn IAnimationSetter>, value: Rc<dyn ICustomAnimator>, )

Sets the value of the Animator attached property for a setter: the custom animator that animates the setter’s property instead of the one selected by the property’s type.

Source

pub fn register_custom_animator<TAnimator: InterpolatingAnimator + Default>()

Registers a user-provided animator for properties of its value type. It takes precedence over the animators registered before it.

Methods from Deref<Target = FerroObject>§

Source

pub fn dispatcher(&self) -> &Arc<Dispatcher> ⓘ

Returns the Dispatcher that this object is associated with: the dispatcher of the thread that owns the object.

Source

pub fn check_access(&self) -> bool

Returns whether the calling thread is the thread that owns this object.

Source

pub fn verify_access(&self)

Checks that the calling thread is the thread that owns this object.

§Panics

Panics when it is not.

Source

pub fn to_ref(&self) -> Ref<FerroObject>

A strong reference to this object.

Source

pub fn to_weak(&self) -> WeakRef<FerroObject>

A weak reference to this object.

Source

pub fn get_type(&self) -> &'static TypeInfo

The runtime type of the object.

Source

pub fn is<T: ObjectType>(&self) -> bool

Whether the object is of class T or a class derived from it.

Source

pub fn downcast_ref<T: ObjectType>(&self) -> Option<&T>

Returns the object viewed as class T if it is one.

Source

pub fn on_property_changed(&self, change: &FerroPropertyChangedEventArgs<'_>)

Invokes the on_property_changed virtual member.

Source

pub fn inheritance_parent(&self) -> Option<Ref<FerroObject>>

The parent object that inherited property values are inherited from.

Source

pub fn set_inheritance_parent(&self, value: impl Into<Nullable<FerroObject>>)

Sets the parent object that inherited property values are inherited from.

Source

pub fn clear_value<T: PropertyValue>( &self, property: &'static StyledProperty<T>, )

Clears a property’s local value.

Source

pub fn get_value<T: PropertyValue>( &self, property: &'static StyledProperty<T>, ) -> T

Gets a property value.

Source

pub fn get_base_value<T: PropertyValue>( &self, property: &'static StyledProperty<T>, ) -> Option<T>

Gets a property’s base value: the value excluding animated values. Returns None if the value comes from inheritance or the default.

Source

pub fn is_animating(&self, property: &FerroProperty) -> bool

Checks whether a property is animating.

Source

pub fn is_set(&self, property: &FerroProperty) -> bool

Checks whether a styled property has a value assigned to it or a binding targeting it.

Source

pub fn has_local_value_binding(&self, property: &FerroProperty) -> bool

Whether a local-value binding targets this property, including direct properties and observable bindings. Unlike is_set, this does not rely on a styled property’s effective-value entry. It does not inspect bindings at style/template priorities.

Source

pub fn set_value<T: PropertyValue>( &self, property: &'static StyledProperty<T>, value: T, )

Sets a property value with local value priority.

Source

pub fn set_value_with_priority<T: PropertyValue>( &self, property: &'static StyledProperty<T>, value: T, priority: BindingPriority, ) -> Option<Rc<dyn IDisposable>>

Sets a property value with the given priority. For priorities other than local value, disposing the returned handle removes the value.

Source

pub fn set_current_value<T: PropertyValue>( &self, property: &'static StyledProperty<T>, value: T, )

Sets the value of a property without changing its value source.

This is used by a component that programmatically sets the value of one of its own properties without disabling an application’s declared use of the property: the effective value changes, but existing bindings and styles continue to work. The new value has the property’s current priority.

Source

pub fn bind_binding( &self, property: &'static FerroProperty, binding: &dyn BindingBase, ) -> Rc<dyn BindingExpressionBase>

Binds a property to a binding. Returns the binding expression which represents the binding instance on this object.

Source

pub fn bind_binding_with_anchor( &self, property: &'static FerroProperty, binding: &dyn BindingBase, anchor: Option<&Ref<FerroObject>>, ) -> Rc<dyn BindingExpressionBase>

Binds a property to a binding.

Some bindings need context to locate their source: a data context, named elements or resources. If this object is not an element, or is not yet attached to the tree, anchor provides that context.

Source

pub fn bind_binding_with_priority( &self, property: &'static FerroProperty, binding: &dyn BindingBase, priority: BindingPriority, anchor: Option<&Ref<FerroObject>>, ) -> Rc<dyn BindingExpressionBase>

Binds a property to a binding at the given priority, whatever the default priority of the binding is. Disposing the returned expression removes the binding.

An addition (no upstream counterpart): the values of WinUI’s visual states are bound at BindingPriority::Animation.

Source

pub fn indexer(&self, binding: &IndexerDescriptor) -> IndexerBinding

Gets a binding to a property of this object: the indexer taking an IndexerDescriptor (source[!Property] is source.indexer(&Property.bind())).

Source

pub fn bind_indexer( &self, binding: &IndexerDescriptor, value: &dyn BindingBase, ) -> Rc<dyn BindingExpressionBase>

Binds the property of an IndexerDescriptor to a binding: the setter of the indexer (target[!Property] = binding is target.bind_indexer(&Property.bind(), &binding)).

Source

pub fn bind<T: PropertyValue>( &self, property: &'static StyledProperty<T>, source: Rc<dyn IObservable<T>>, priority: BindingPriority, ) -> Rc<dyn IDisposable>

Binds a property to an observable.

Source

pub fn bind_value<T: PropertyValue>( &self, property: &'static StyledProperty<T>, source: Rc<dyn IObservable<BindingValue<T>>>, priority: BindingPriority, ) -> Rc<dyn IDisposable>

Binds a property to an observable of binding values.

Source

pub fn bind_untyped<T: PropertyValue>( &self, property: &'static StyledProperty<T>, source: Rc<dyn IObservable<BoxedValue>>, priority: BindingPriority, ) -> Rc<dyn IDisposable>

Binds a property to an observable of untyped values.

Source

pub fn coerce_value(&self, property: &'static FerroProperty)

Coerces the specified property.

Source

pub fn get_direct_value<T: PropertyValue>( &self, property: &'static DirectPropertyBase<T>, ) -> T

Gets a direct property value.

Source

pub fn set_direct_value<T: PropertyValue>( &self, property: &'static DirectPropertyBase<T>, value: T, )

Sets a direct property value.

Source

pub fn clear_direct_value<T: PropertyValue>( &self, property: &'static DirectPropertyBase<T>, )

Resets a direct property to its unset value.

Source

pub fn bind_direct<T: PropertyValue>( &self, property: &'static DirectPropertyBase<T>, source: Rc<dyn IObservable<T>>, ) -> Rc<dyn IDisposable>

Binds a direct property to an observable.

Source

pub fn bind_direct_value<T: PropertyValue>( &self, property: &'static DirectPropertyBase<T>, source: Rc<dyn IObservable<BindingValue<T>>>, ) -> Rc<dyn IDisposable>

Binds a direct property to an observable of binding values.

Source

pub fn bind_direct_untyped<T: PropertyValue>( &self, property: &'static DirectPropertyBase<T>, source: Rc<dyn IObservable<BoxedValue>>, ) -> Rc<dyn IDisposable>

Binds a direct property to an observable of untyped values.

Source

pub fn set_and_raise<T: PropertyValue>( &self, property: &'static DirectPropertyBase<T>, field: &RefCell<T>, value: T, ) -> bool

Sets the backing field of a direct property, raising a change notification if the value changed. Returns true if it changed.

Source

pub fn set_and_raise_cell<T: PropertyValue + Copy>( &self, property: &'static DirectPropertyBase<T>, field: &Cell<T>, value: T, ) -> bool

set_and_raise for Copy values stored in a Cell.

Source

pub fn get_value_untyped(&self, property: &'static FerroProperty) -> BoxedValue

Gets a property value as an untyped value.

Source

pub fn set_value_untyped( &self, property: &'static FerroProperty, value: &dyn Any, priority: BindingPriority, ) -> Option<Rc<dyn IDisposable>>

Sets a property from an untyped value, which must hold exactly the property’s value type or the unset marker.

Source

pub fn set_current_value_untyped( &self, property: &'static FerroProperty, value: &dyn Any, )

set_current_value with an untyped value.

Source

pub fn clear_value_untyped(&self, property: &'static FerroProperty)

Clears a property’s local value.

Source

pub fn bind_property_untyped( &self, property: &'static FerroProperty, source: Rc<dyn IObservable<BoxedValue>>, priority: BindingPriority, ) -> Rc<dyn IDisposable>

Binds a property to an observable of untyped values.

Source

pub fn property_changed( &self, handler: impl Fn(&FerroPropertyChangedEventArgs<'_>) + 'static, ) -> Rc<dyn IDisposable>

Subscribes to property changes on this object. Disposing the returned handle unsubscribes.

Source

pub fn add_property_changed_handler( &self, handler: Rc<dyn Fn(&FerroPropertyChangedEventArgs<'_>)>, ) -> u64

Subscribes handler to property changes on this object and returns the token that remove_property_changed_handler takes: property_changed for a subscriber that keeps the object and the token itself, so that no handle is made.

Source

pub fn remove_property_changed_handler(&self, token: u64) -> bool

Ends a subscription of add_property_changed_handler.

Source

pub fn property_changed_subscriber_count(&self) -> usize

The number of subscribers to property changes on this object (a diagnostics member, used by tests to verify that subscriptions are released).

Source

pub fn raise_property_changed<T: PropertyValue>( &self, property: &'static FerroProperty, old_value: Option<&T>, new_value: &T, priority: BindingPriority, is_effective_value: bool, )

Raises a property changed notification.

Source

pub fn raise_direct_property_changed<T: PropertyValue>( &self, property: &'static DirectPropertyBase<T>, old_value: &T, new_value: &T, )

Raises a property changed notification for a direct property.

Trait Implementations§

Source§

impl Deref for Animation

Source§

type Target = FerroObject

The resulting type after dereferencing.
Source§

fn deref(&self) -> &FerroObject

Dereferences the value.
Source§

impl FerroObjectImpl for Animation

Source§

fn constructed(this: &Self)

Called once, right after the object has been allocated. This is where constructor logic that needs a reference to the object runs. Overrides must call parent_constructed first.
Source§

fn on_property_changed_core( this: &Self, change: &FerroPropertyChangedEventArgs<'_>, )

Called for every property change on the object, including changes of non-effective (base) values. Overriding this is rarely needed; override on_property_changed instead.
Source§

fn on_property_changed(this: &Self, change: &FerroPropertyChangedEventArgs<'_>)

Called when the effective value of a property changes on the object.
Source§

fn update_data_validation( this: &Self, property: &'static FerroProperty, state: BindingValueType, error: Option<&BindingError>, )

Called to update the validation state for properties for which data validation is enabled.
Source§

impl ObjectType for Animation

Source§

type Parent = FerroObject

The base class. The root class is its own parent.
Source§

type VTable = <FerroObject as ObjectType>::VTable

The virtual table of the class.
Source§

fn vtable() -> &'static Self::VTable

The virtual table used by instances whose most-derived class is Self.
Source§

fn register_class()

The static initialisation of the class. The first call on a thread, after doing the same for the base class: Read more
Source§

impl StaticType for Animation

Source§

const TYPE: &'static TypeInfo

The runtime type.
Source§

impl<T> Subclassable<T> for Animation

Source§

impl Upcast<Animation> for Animation

Source§

impl<T: ?Sized> Upcast<T> for Animation
where FerroObject: Upcast<T>,

Source§

fn upcast(&self) -> &T

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> 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<T> ClassDefaults for T
where T: ?Sized,

Source§

fn static_constructor()

The static constructor of a type: work done once per thread, after the properties of the type are registered and before its first instance exists (class handlers, affects_render, metadata overrides). Read more
Source§

impl<T> FerroObjectImplExt for T
where T: FerroObjectImpl,

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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.