event handler on events

This commit is contained in:
2025-06-27 12:22:59 -05:00
parent 15b61d57c8
commit 3cacd42421
5 changed files with 38 additions and 54 deletions
+7 -17
View File
@@ -1,6 +1,6 @@
use osui::{
element::input::{Input, InputUpdateEvent},
events::EventManager,
events::{Close, EventManager},
extensions::{keypress::KeyPressExtension, ExtensionManager},
style::Transform,
Screen,
@@ -12,23 +12,13 @@ fn main() {
let mut events = EventManager::new();
extensions.add(KeyPressExtension);
let widget = screen.draw(Input::new()).component(Transform::center());
screen.draw(Input::new()).component(Transform::center());
let input_event = widget
.0
.as_any()
.downcast_ref::<Input>()
.unwrap()
.get_event();
input_event
.lock()
.unwrap()
.on(|event: Box<InputUpdateEvent>| {
if event.0 == "quit" {
std::process::exit(0)
}
});
events.on(|events, event: Box<InputUpdateEvent>| {
if event.0 == "quit" {
events.dispatch(Close);
}
});
screen.run(&mut events, &mut extensions).unwrap();
}