event handler on events
This commit is contained in:
+7
-17
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user