150 lines
3.9 KiB
Rust
150 lines
3.9 KiB
Rust
mod keys;
|
|
pub use keys::*;
|
|
|
|
macro_rules! impl_event {
|
|
(
|
|
$data:ty;
|
|
$(
|
|
$( #[$attr:meta] )*
|
|
$name:ident
|
|
)*
|
|
) => {
|
|
$(
|
|
$( #[$attr] )*
|
|
pub fn $name<'a>(_cx: &'a ::dioxus_core::ScopeState, _f: impl FnMut(::dioxus_core::UiEvent<$data>) + 'a) -> ::dioxus_core::Attribute<'a> {
|
|
::dioxus_core::Attribute {
|
|
name: stringify!($name),
|
|
value: ::dioxus_core::AttributeValue::new_listener(_cx, _f),
|
|
namespace: None,
|
|
mounted_element: Default::default(),
|
|
volatile: false,
|
|
}
|
|
}
|
|
)*
|
|
};
|
|
}
|
|
|
|
mod animation;
|
|
mod clipboard;
|
|
mod composition;
|
|
mod drag;
|
|
mod focus;
|
|
mod form;
|
|
mod image;
|
|
mod keyboard;
|
|
mod media;
|
|
mod mouse;
|
|
mod pointer;
|
|
mod scroll;
|
|
mod selection;
|
|
mod toggle;
|
|
mod touch;
|
|
mod transition;
|
|
mod wheel;
|
|
|
|
pub use animation::*;
|
|
pub use clipboard::*;
|
|
pub use composition::*;
|
|
pub use drag::*;
|
|
pub use focus::*;
|
|
pub use form::*;
|
|
pub use image::*;
|
|
pub use keyboard::*;
|
|
pub use media::*;
|
|
pub use mouse::*;
|
|
pub use pointer::*;
|
|
pub use scroll::*;
|
|
pub use selection::*;
|
|
pub use toggle::*;
|
|
pub use touch::*;
|
|
pub use transition::*;
|
|
pub use wheel::*;
|
|
|
|
// pub fn event_bubbles(evt: &str) -> bool {
|
|
// match evt {
|
|
// "copy" => true,
|
|
// "cut" => true,
|
|
// "paste" => true,
|
|
// "compositionend" => true,
|
|
// "compositionstart" => true,
|
|
// "compositionupdate" => true,
|
|
// "keydown" => true,
|
|
// "keypress" => true,
|
|
// "keyup" => true,
|
|
// "focus" => false,
|
|
// "focusout" => true,
|
|
// "focusin" => true,
|
|
// "blur" => false,
|
|
// "change" => true,
|
|
// "input" => true,
|
|
// "invalid" => true,
|
|
// "reset" => true,
|
|
// "submit" => true,
|
|
// "click" => true,
|
|
// "contextmenu" => true,
|
|
// "doubleclick" => true,
|
|
// "dblclick" => true,
|
|
// "drag" => true,
|
|
// "dragend" => true,
|
|
// "dragenter" => false,
|
|
// "dragexit" => false,
|
|
// "dragleave" => true,
|
|
// "dragover" => true,
|
|
// "dragstart" => true,
|
|
// "drop" => true,
|
|
// "mousedown" => true,
|
|
// "mouseenter" => false,
|
|
// "mouseleave" => false,
|
|
// "mousemove" => true,
|
|
// "mouseout" => true,
|
|
// "scroll" => false,
|
|
// "mouseover" => true,
|
|
// "mouseup" => true,
|
|
// "pointerdown" => true,
|
|
// "pointermove" => true,
|
|
// "pointerup" => true,
|
|
// "pointercancel" => true,
|
|
// "gotpointercapture" => true,
|
|
// "lostpointercapture" => true,
|
|
// "pointerenter" => false,
|
|
// "pointerleave" => false,
|
|
// "pointerover" => true,
|
|
// "pointerout" => true,
|
|
// "select" => true,
|
|
// "touchcancel" => true,
|
|
// "touchend" => true,
|
|
// "touchmove" => true,
|
|
// "touchstart" => true,
|
|
// "wheel" => true,
|
|
// "abort" => false,
|
|
// "canplay" => false,
|
|
// "canplaythrough" => false,
|
|
// "durationchange" => false,
|
|
// "emptied" => false,
|
|
// "encrypted" => true,
|
|
// "ended" => false,
|
|
// "error" => false,
|
|
// "loadeddata" => false,
|
|
// "loadedmetadata" => false,
|
|
// "loadstart" => false,
|
|
// "pause" => false,
|
|
// "play" => false,
|
|
// "playing" => false,
|
|
// "progress" => false,
|
|
// "ratechange" => false,
|
|
// "seeked" => false,
|
|
// "seeking" => false,
|
|
// "stalled" => false,
|
|
// "suspend" => false,
|
|
// "timeupdate" => false,
|
|
// "volumechange" => false,
|
|
// "waiting" => false,
|
|
// "animationstart" => true,
|
|
// "animationend" => true,
|
|
// "animationiteration" => true,
|
|
// "transitionend" => true,
|
|
// "toggle" => true,
|
|
// _ => panic!("unsupported event type {:?}", evt),
|
|
// }
|
|
// }
|