use iced::text_input;
use iced_focus::Focus;
#[derive(Focus)]
enum Example {
None,
One {
#[focus(enable)]
text_input_one: text_input::State,
},
Two {
#[focus(enable)]
text_input_one: text_input::State,
#[focus(enable)]
text_input_two: text_input::State,
},
}
fn main() {
let mut example = Example::None;
assert_eq!(
example.focus(iced_focus::Direction::Forwards),
iced_focus::State::Ignored
);
example = Example::One {
text_input_one: text_input::State::new(),
};
assert_eq!(
example.focus(iced_focus::Direction::Forwards),
iced_focus::State::Kept
);
if let Example::One { text_input_one } = example {
assert!(text_input_one.has_focus())
}
example = Example::Two {
text_input_one: text_input::State::new(),
text_input_two: text_input::State::new(),
};
assert_eq!(
example.focus(iced_focus::Direction::Forwards),
iced_focus::State::Kept
);
if let Example::Two {
text_input_one,
text_input_two,
} = example
{
assert!(text_input_one.has_focus());
assert!(!text_input_two.has_focus());
}
}