pointer.rs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. use dioxus_core::Event;
  2. pub type PointerEvent = Event<PointerData>;
  3. #[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
  4. #[derive(Debug, Clone, PartialEq)]
  5. pub struct PointerData {
  6. // Mouse only
  7. pub alt_key: bool,
  8. pub button: i16,
  9. pub buttons: u16,
  10. pub client_x: i32,
  11. pub client_y: i32,
  12. pub ctrl_key: bool,
  13. pub meta_key: bool,
  14. pub page_x: i32,
  15. pub page_y: i32,
  16. pub screen_x: i32,
  17. pub screen_y: i32,
  18. pub shift_key: bool,
  19. pub pointer_id: i32,
  20. pub width: i32,
  21. pub height: i32,
  22. pub pressure: f32,
  23. pub tangential_pressure: f32,
  24. pub tilt_x: i32,
  25. pub tilt_y: i32,
  26. pub twist: i32,
  27. pub pointer_type: String,
  28. pub is_primary: bool,
  29. // pub get_modifier_state: bool,
  30. }
  31. impl_event![
  32. PointerData;
  33. /// pointerdown
  34. onpointerdown
  35. /// pointermove
  36. onpointermove
  37. /// pointerup
  38. onpointerup
  39. /// pointercancel
  40. onpointercancel
  41. /// gotpointercapture
  42. ongotpointercapture
  43. /// lostpointercapture
  44. onlostpointercapture
  45. /// pointerenter
  46. onpointerenter
  47. /// pointerleave
  48. onpointerleave
  49. /// pointerover
  50. onpointerover
  51. /// pointerout
  52. onpointerout
  53. ];