ferroui_base/input/
focus_changed_event_args.rs1use super::{IKeyModifiersEventArgs, InputElement, KeyModifiers, NavigationMethod};
2use crate::interactivity::{RoutedEvent, RoutedEventArgs};
3use crate::{ferro_routed_event_args, Ref};
4
5#[derive(Clone)]
7pub struct FocusChangedEventArgs {
8 base: RoutedEventArgs,
9
10 pub new_focused_element: Option<Ref<InputElement>>,
12
13 pub old_focused_element: Option<Ref<InputElement>>,
15
16 pub navigation_method: NavigationMethod,
18
19 pub key_modifiers: KeyModifiers,
21}
22
23ferro_routed_event_args!(FocusChangedEventArgs: RoutedEventArgs);
24
25impl FocusChangedEventArgs {
26 pub fn new<T: ?Sized>(routed_event: &RoutedEvent<T>) -> Self {
28 Self {
29 base: RoutedEventArgs::with_event(routed_event),
30 new_focused_element: None,
31 old_focused_element: None,
32 navigation_method: NavigationMethod::Unspecified,
33 key_modifiers: KeyModifiers::NONE,
34 }
35 }
36}
37
38impl IKeyModifiersEventArgs for FocusChangedEventArgs {
39 fn key_modifiers(&self) -> KeyModifiers {
40 self.key_modifiers
41 }
42}