Files
dioxus/packages/html/src/events.rs
T

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),
// }
// }