feat: event handling on desktop
This commit is contained in:
1 parent
073fea9ed3
commit
30ef225812
29 files changed
+424
-205
No files matched your search
@@ -68,3 +68,9 @@ pub use transition::*;
|
||||
|
||||
mod wheel;
|
||||
pub use wheel::*;
|
||||
|
||||
mod clipboard;
|
||||
pub use clipboard::*;
|
||||
|
||||
mod scroll;
|
||||
pub use scroll::*;
|
||||
@@ -1,6 +1,10 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type AnimationEvent = UiEvent<AnimationData>;
|
||||
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct AnimationEvent {
|
||||
pub struct AnimationData {
|
||||
pub animation_name: String,
|
||||
pub pseudo_element: String,
|
||||
pub elapsed_time: f32,
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type ClipboardEvent = UiEvent<ClipboardData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct ClipboardData {
|
||||
// DOMDataTransfer clipboardData
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type CompositionEvent = UiEvent<CompositionData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct CompositionData {
|
||||
pub data: String,
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type ImageEvent = UiEvent<ImageData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct ImageData {
|
||||
pub load_error: bool,
|
||||
}
|
||||
@@ -1,15 +1,6 @@
|
||||
use crate::geometry::{
|
||||
ClientPoint, Coordinates, ElementPoint, LinesVector, PagePoint, PagesVector, PixelsVector,
|
||||
ScreenPoint, WheelDelta,
|
||||
};
|
||||
use crate::input_data::{
|
||||
decode_key_location, decode_mouse_button_set, encode_key_location, encode_mouse_button_set,
|
||||
MouseButton, MouseButtonSet,
|
||||
};
|
||||
use dioxus_core::{NodeFactory, UiEvent};
|
||||
use euclid::UnknownUnit;
|
||||
use crate::input_data::{decode_key_location, encode_key_location};
|
||||
use dioxus_core::UiEvent;
|
||||
use keyboard_types::{Code, Key, Location, Modifiers};
|
||||
use std::collections::HashMap;
|
||||
use std::convert::TryInto;
|
||||
use std::fmt::{Debug, Formatter};
|
||||
use std::str::FromStr;
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type MediaEvent = UiEvent<MediaData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct MediaData {}
|
||||
@@ -0,0 +1,31 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type PointerEvent = UiEvent<PointerData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct PointerData {
|
||||
// Mouse only
|
||||
pub alt_key: bool,
|
||||
pub button: i16,
|
||||
pub buttons: u16,
|
||||
pub client_x: i32,
|
||||
pub client_y: i32,
|
||||
pub ctrl_key: bool,
|
||||
pub meta_key: bool,
|
||||
pub page_x: i32,
|
||||
pub page_y: i32,
|
||||
pub screen_x: i32,
|
||||
pub screen_y: i32,
|
||||
pub shift_key: bool,
|
||||
pub pointer_id: i32,
|
||||
pub width: i32,
|
||||
pub height: i32,
|
||||
pub pressure: f32,
|
||||
pub tangential_pressure: f32,
|
||||
pub tilt_x: i32,
|
||||
pub tilt_y: i32,
|
||||
pub twist: i32,
|
||||
pub pointer_type: String,
|
||||
pub is_primary: bool,
|
||||
// pub get_modifier_state: bool,
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type ScrollEvent = UiEvent<ScrollData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct ScrollData {}
|
||||
@@ -0,0 +1,6 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type SelectionEvent = UiEvent<SelectionData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct SelectionData {}
|
||||
@@ -0,0 +1,6 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type ToggleEvent = UiEvent<ToggleData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct ToggleData {}
|
||||
@@ -0,0 +1,15 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type TouchEvent = UiEvent<TouchData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct TouchData {
|
||||
pub alt_key: bool,
|
||||
pub ctrl_key: bool,
|
||||
pub meta_key: bool,
|
||||
pub shift_key: bool,
|
||||
// get_modifier_state: bool,
|
||||
// changedTouches: DOMTouchList,
|
||||
// targetTouches: DOMTouchList,
|
||||
// touches: DOMTouchList,
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
use dioxus_core::UiEvent;
|
||||
|
||||
pub type TransitionEvent = UiEvent<TransitionData>;
|
||||
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct TransitionData {
|
||||
pub property_name: String,
|
||||
pub pseudo_element: String,
|
||||
pub elapsed_time: f32,
|
||||
}
|
||||
Reference in new issue
Block a user