Skip to main content

ferroui_base/animation/transitions/
corner_radius_transition.rs

1use crate::animation::animators::CornerRadiusAnimator;
2use crate::animation::{AnimatorDrivenTransition, Transition, TransitionBase};
3use crate::ferro_transition_class;
4use crate::reactive::IObservable;
5use crate::CornerRadius;
6use std::rc::Rc;
7
8ferro_transition_class!(
9    /// Transition class that handles properties with [`CornerRadius`] types.
10    CornerRadiusTransition: CornerRadius
11);
12
13impl Transition<CornerRadius> for CornerRadiusTransition {
14    fn do_transition(
15        this: &Self,
16        progress: Rc<dyn IObservable<f64>>,
17        old_value: CornerRadius,
18        new_value: CornerRadius,
19    ) -> Rc<dyn IObservable<CornerRadius>> {
20        AnimatorDrivenTransition::transition::<CornerRadiusAnimator>(this.easing(), progress, old_value, new_value)
21    }
22}