Skip to main content

fui/
transitions.rs

1use crate::animation::AnimationTiming;
2
3#[derive(Clone, Debug, Default, PartialEq)]
4pub struct NodeTransitions {
5    opacity_timing: Option<AnimationTiming>,
6    background_color_timing: Option<AnimationTiming>,
7    scroll_offset_timing: Option<AnimationTiming>,
8}
9
10impl NodeTransitions {
11    pub fn new() -> Self {
12        Self::default()
13    }
14
15    pub fn opacity(mut self, timing: AnimationTiming) -> Self {
16        self.opacity_timing = Some(timing);
17        self
18    }
19
20    pub fn bg_color(mut self, timing: AnimationTiming) -> Self {
21        self.background_color_timing = Some(timing);
22        self
23    }
24
25    pub fn scroll_offset(mut self, timing: AnimationTiming) -> Self {
26        self.scroll_offset_timing = Some(timing);
27        self
28    }
29
30    pub(crate) fn opacity_timing(&self) -> Option<AnimationTiming> {
31        self.opacity_timing
32    }
33
34    pub(crate) fn background_color_timing(&self) -> Option<AnimationTiming> {
35        self.background_color_timing
36    }
37
38    pub(crate) fn scroll_offset_timing(&self) -> Option<AnimationTiming> {
39        self.scroll_offset_timing
40    }
41}