events.rs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. //! Convert a serialized event to an event trigger
  2. use dioxus_html::*;
  3. use serde::{Deserialize, Serialize};
  4. use crate::element::DesktopElement;
  5. #[derive(Deserialize, Serialize, Debug, Clone)]
  6. pub struct IpcMessage {
  7. method: String,
  8. params: serde_json::Value,
  9. }
  10. impl IpcMessage {
  11. pub(crate) fn method(&self) -> &str {
  12. self.method.as_str()
  13. }
  14. pub(crate) fn params(self) -> serde_json::Value {
  15. self.params
  16. }
  17. }
  18. pub(crate) struct SerializedHtmlEventConverter;
  19. impl HtmlEventConverter for SerializedHtmlEventConverter {
  20. fn convert_animation_data(&self, event: &PlatformEventData) -> AnimationData {
  21. event
  22. .downcast::<SerializedAnimationData>()
  23. .cloned()
  24. .unwrap()
  25. .into()
  26. }
  27. fn convert_clipboard_data(&self, event: &PlatformEventData) -> ClipboardData {
  28. event
  29. .downcast::<SerializedClipboardData>()
  30. .cloned()
  31. .unwrap()
  32. .into()
  33. }
  34. fn convert_composition_data(&self, event: &PlatformEventData) -> CompositionData {
  35. event
  36. .downcast::<SerializedCompositionData>()
  37. .cloned()
  38. .unwrap()
  39. .into()
  40. }
  41. fn convert_drag_data(&self, event: &PlatformEventData) -> DragData {
  42. event
  43. .downcast::<SerializedDragData>()
  44. .cloned()
  45. .unwrap()
  46. .into()
  47. }
  48. fn convert_focus_data(&self, event: &PlatformEventData) -> FocusData {
  49. event
  50. .downcast::<SerializedFocusData>()
  51. .cloned()
  52. .unwrap()
  53. .into()
  54. }
  55. fn convert_form_data(&self, event: &PlatformEventData) -> FormData {
  56. event
  57. .downcast::<SerializedFormData>()
  58. .cloned()
  59. .unwrap()
  60. .into()
  61. }
  62. fn convert_image_data(&self, event: &PlatformEventData) -> ImageData {
  63. event
  64. .downcast::<SerializedImageData>()
  65. .cloned()
  66. .unwrap()
  67. .into()
  68. }
  69. fn convert_keyboard_data(&self, event: &PlatformEventData) -> KeyboardData {
  70. event
  71. .downcast::<SerializedKeyboardData>()
  72. .cloned()
  73. .unwrap()
  74. .into()
  75. }
  76. fn convert_media_data(&self, event: &PlatformEventData) -> MediaData {
  77. event
  78. .downcast::<SerializedMediaData>()
  79. .cloned()
  80. .unwrap()
  81. .into()
  82. }
  83. fn convert_mounted_data(&self, event: &PlatformEventData) -> MountedData {
  84. event.downcast::<DesktopElement>().cloned().unwrap().into()
  85. }
  86. fn convert_mouse_data(&self, event: &PlatformEventData) -> MouseData {
  87. event
  88. .downcast::<SerializedMouseData>()
  89. .cloned()
  90. .unwrap()
  91. .into()
  92. }
  93. fn convert_pointer_data(&self, event: &PlatformEventData) -> PointerData {
  94. event
  95. .downcast::<SerializedPointerData>()
  96. .cloned()
  97. .unwrap()
  98. .into()
  99. }
  100. fn convert_scroll_data(&self, event: &PlatformEventData) -> ScrollData {
  101. event
  102. .downcast::<SerializedScrollData>()
  103. .cloned()
  104. .unwrap()
  105. .into()
  106. }
  107. fn convert_selection_data(&self, event: &PlatformEventData) -> SelectionData {
  108. event
  109. .downcast::<SerializedSelectionData>()
  110. .cloned()
  111. .unwrap()
  112. .into()
  113. }
  114. fn convert_toggle_data(&self, event: &PlatformEventData) -> ToggleData {
  115. event
  116. .downcast::<SerializedToggleData>()
  117. .cloned()
  118. .unwrap()
  119. .into()
  120. }
  121. fn convert_touch_data(&self, event: &PlatformEventData) -> TouchData {
  122. event
  123. .downcast::<SerializedTouchData>()
  124. .cloned()
  125. .unwrap()
  126. .into()
  127. }
  128. fn convert_transition_data(&self, event: &PlatformEventData) -> TransitionData {
  129. event
  130. .downcast::<SerializedTransitionData>()
  131. .cloned()
  132. .unwrap()
  133. .into()
  134. }
  135. fn convert_wheel_data(&self, event: &PlatformEventData) -> WheelData {
  136. event
  137. .downcast::<SerializedWheelData>()
  138. .cloned()
  139. .unwrap()
  140. .into()
  141. }
  142. }