From c090741c60f847077f91babd75e2c23847a93a1b Mon Sep 17 00:00:00 2001 From: Reinis Mazeiks Date: Tue, 28 Jun 2022 23:46:24 +0300 Subject: [PATCH] Improve event formatting --- examples/all_events.rs | 6 +++--- packages/html/src/events.rs | 14 +++++++++++++- packages/html/src/geometry.rs | 1 + 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/examples/all_events.rs b/examples/all_events.rs index 9a5a585ca..5c6d56e37 100644 --- a/examples/all_events.rs +++ b/examples/all_events.rs @@ -36,7 +36,7 @@ fn app(cx: Scope) -> Element { let first_index = events_lock.len().saturating_sub(MAX_EVENTS); let events_rendered = events_lock[first_index..] .iter() - .map(|event| cx.render(rsx!(div{"{event:?}"}))); + .map(|event| cx.render(rsx!(div {"{event:?}"}))); let log_event = move |event: Event| { events.write().push(event); @@ -45,7 +45,6 @@ fn app(cx: Scope) -> Element { cx.render(rsx! ( div { style: "{container_style}", - "Hover over to display coordinates:", div { style: "{rect_style}", onmousemove: move |event| log_event(Event::MouseMove(event.data)), @@ -53,9 +52,10 @@ fn app(cx: Scope) -> Element { ondblclick: move |event| log_event(Event::MouseDoubleClick(event.data)), onmousedown: move |event| log_event(Event::MouseDown(event.data)), onmouseup: move |event| log_event(Event::MouseUp(event.data)), + // prevent selection prevent_default: "mousedown", } + div { events_rendered }, }, - events_rendered, )) } diff --git a/packages/html/src/events.rs b/packages/html/src/events.rs index 3bd84ac0e..dbf6dd2ca 100644 --- a/packages/html/src/events.rs +++ b/packages/html/src/events.rs @@ -17,6 +17,7 @@ pub mod on { use keyboard_types::{Code, Key, Location, Modifiers}; use std::collections::HashMap; use std::convert::TryInto; + use std::fmt::{Debug, Formatter}; use std::str::FromStr; use super::*; @@ -568,7 +569,7 @@ pub mod on { pub type MouseEvent = UiEvent; #[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))] - #[derive(Debug, Clone)] + #[derive(Clone)] /// Data associated with a mouse event /// /// Do not use the deprecated fields; they may change or become private in the future. @@ -753,6 +754,17 @@ pub mod on { } } + impl Debug for MouseData { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + f.debug_struct("MouseData") + .field("coordinates", &self.coordinates()) + .field("modifiers", &self.modifiers()) + .field("held_buttons", &self.held_buttons()) + .field("trigger_button", &self.trigger_button()) + .finish() + } + } + pub type PointerEvent = UiEvent; #[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))] #[derive(Debug, Clone)] diff --git a/packages/html/src/geometry.rs b/packages/html/src/geometry.rs index 027922a85..990ca5b5e 100644 --- a/packages/html/src/geometry.rs +++ b/packages/html/src/geometry.rs @@ -96,6 +96,7 @@ impl WheelDelta { } /// Coordinates of a point in the app's interface +#[derive(Debug)] pub struct Coordinates { screen: ScreenPoint, client: ClientPoint,