ferroui_controls/primitives/
range_base_value_changed_event_args.rs1use ferroui_base::ferro_routed_event_args;
2use ferroui_base::interactivity::{RoutedEvent, RoutedEventArgs};
3use ferroui_base::{FerroObject, Nullable};
4
5#[derive(Clone, Default)]
7pub struct RangeBaseValueChangedEventArgs {
8 base: RoutedEventArgs,
9 old_value: f64,
10 new_value: f64,
11}
12
13ferro_routed_event_args!(RangeBaseValueChangedEventArgs: RoutedEventArgs);
14
15impl RangeBaseValueChangedEventArgs {
16 pub fn new<T: ?Sized>(old_value: f64, new_value: f64, routed_event: Option<&RoutedEvent<T>>) -> Self {
19 let base = match routed_event {
20 Some(routed_event) => RoutedEventArgs::with_event(routed_event),
21 None => RoutedEventArgs::new(),
22 };
23 Self { base, old_value, new_value }
24 }
25
26 pub fn with_source<T: ?Sized>(
30 old_value: f64,
31 new_value: f64,
32 routed_event: Option<&RoutedEvent<T>>,
33 source: impl Into<Nullable<FerroObject>>,
34 ) -> Self {
35 let args = Self::new(old_value, new_value, routed_event);
36 args.set_source(source);
37 args
38 }
39
40 pub fn old_value(&self) -> f64 {
42 self.old_value
43 }
44
45 pub fn new_value(&self) -> f64 {
47 self.new_value
48 }
49}