From 2b7ad3d50eae48b1963aa8e866e184c41133ca3d Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector0193@gmail.com>
Date: Sat, 20 Jul 2019 19:12:31 +0200
Subject: Decouple `iced` from `coffee`

---
 src/input/mouse/button.rs |  7 +++++++
 src/input/mouse/event.rs  | 39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+)
 create mode 100644 src/input/mouse/button.rs
 create mode 100644 src/input/mouse/event.rs

(limited to 'src/input/mouse')

diff --git a/src/input/mouse/button.rs b/src/input/mouse/button.rs
new file mode 100644
index 00000000..c51bedfc
--- /dev/null
+++ b/src/input/mouse/button.rs
@@ -0,0 +1,7 @@
+#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)]
+pub enum Button {
+    Left,
+    Right,
+    Middle,
+    Other(u8),
+}
diff --git a/src/input/mouse/event.rs b/src/input/mouse/event.rs
new file mode 100644
index 00000000..1f7a1547
--- /dev/null
+++ b/src/input/mouse/event.rs
@@ -0,0 +1,39 @@
+use super::Button;
+use crate::input::ButtonState;
+
+/// A mouse event.
+#[derive(Debug, Clone, Copy, PartialEq)]
+pub enum Event {
+    /// The mouse cursor entered the window.
+    CursorEntered,
+
+    /// The mouse cursor left the window.
+    CursorLeft,
+
+    /// The mouse cursor was moved
+    CursorMoved {
+        /// The X coordinate of the mouse position
+        x: f32,
+
+        /// The Y coordinate of the mouse position
+        y: f32,
+    },
+
+    /// A mouse button was pressed or released.
+    Input {
+        /// The state of the button
+        state: ButtonState,
+
+        /// The button identifier
+        button: Button,
+    },
+
+    /// The mouse wheel was scrolled.
+    WheelScrolled {
+        /// The number of horizontal lines scrolled
+        delta_x: f32,
+
+        /// The number of vertical lines scrolled
+        delta_y: f32,
+    },
+}
-- 
cgit