Add keyboard events to event example
This commit is contained in:
1 parent
c090741c60
commit
8f8a614a5c
1 file changed
+11
-3
+11
-3
@@ -1,6 +1,6 @@
|
|||||||
use dioxus::prelude::*;
|
use dioxus::prelude::*;
|
||||||
use dioxus_core::UiEvent;
|
use dioxus_core::UiEvent;
|
||||||
use dioxus_html::on::MouseData;
|
use dioxus_html::on::{KeyboardData, MouseData};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
@@ -14,6 +14,9 @@ enum Event {
|
|||||||
MouseDoubleClick(Arc<MouseData>),
|
MouseDoubleClick(Arc<MouseData>),
|
||||||
MouseDown(Arc<MouseData>),
|
MouseDown(Arc<MouseData>),
|
||||||
MouseUp(Arc<MouseData>),
|
MouseUp(Arc<MouseData>),
|
||||||
|
KeyDown(Arc<KeyboardData>),
|
||||||
|
KeyUp(Arc<KeyboardData>),
|
||||||
|
KeyPress(Arc<KeyboardData>),
|
||||||
}
|
}
|
||||||
|
|
||||||
const MAX_EVENTS: usize = 4;
|
const MAX_EVENTS: usize = 4;
|
||||||
@@ -47,13 +50,18 @@ fn app(cx: Scope) -> Element {
|
|||||||
style: "{container_style}",
|
style: "{container_style}",
|
||||||
div {
|
div {
|
||||||
style: "{rect_style}",
|
style: "{rect_style}",
|
||||||
|
// focusing is necessary to catch keyboard events
|
||||||
|
tabindex: "0",
|
||||||
|
|
||||||
onmousemove: move |event| log_event(Event::MouseMove(event.data)),
|
onmousemove: move |event| log_event(Event::MouseMove(event.data)),
|
||||||
onclick: move |event| log_event(Event::MouseClick(event.data)),
|
onclick: move |event| log_event(Event::MouseClick(event.data)),
|
||||||
ondblclick: move |event| log_event(Event::MouseDoubleClick(event.data)),
|
ondblclick: move |event| log_event(Event::MouseDoubleClick(event.data)),
|
||||||
onmousedown: move |event| log_event(Event::MouseDown(event.data)),
|
onmousedown: move |event| log_event(Event::MouseDown(event.data)),
|
||||||
onmouseup: move |event| log_event(Event::MouseUp(event.data)),
|
onmouseup: move |event| log_event(Event::MouseUp(event.data)),
|
||||||
// prevent selection
|
|
||||||
prevent_default: "mousedown",
|
onkeydown: move |event| log_event(Event::KeyDown(event.data)),
|
||||||
|
onkeyup: move |event| log_event(Event::KeyUp(event.data)),
|
||||||
|
onkeypress: move |event| log_event(Event::KeyPress(event.data)),
|
||||||
}
|
}
|
||||||
div { events_rendered },
|
div { events_rendered },
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in new issue
Block a user