aboutsummaryrefslogtreecommitdiffstats
path: root/src/events.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/events.rs')
-rw-r--r--src/events.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/events.rs b/src/events.rs
index 7962706..6c4dc5b 100644
--- a/src/events.rs
+++ b/src/events.rs
@@ -39,6 +39,46 @@ pub enum Event {
/// The window needs to be redrawn.
Refresh,
+
+ /// App has been suspended or resumed.
+ ///
+ /// The parameter is true if app was suspended, and false if it has been resumed.
+ Suspended(bool),
+
+
+ /// Touch event has been received
+ Touch(Touch)
+}
+
+#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)]
+pub enum TouchPhase {
+ Started,
+ Moved,
+ Ended,
+ Cancelled
+}
+
+#[derive(Debug, Clone, Copy)]
+/// Represents touch event
+///
+/// Every time user touches screen new Start event with some finger id is generated.
+/// When the finger is removed from the screen End event with same id is generated.
+///
+/// For every id there will be at least 2 events with phases Start and End (or Cancelled).
+/// There may be 0 or more Move events.
+///
+///
+/// Depending on platform implementation id may or may not be reused by system after End event.
+///
+/// Gesture regonizer using this event should assume that Start event received with same id
+/// as previously received End event is a new finger and has nothing to do with an old one.
+///
+/// Touch may be cancelled if for example window lost focus.
+pub struct Touch {
+ pub phase: TouchPhase,
+ pub location: (f64,f64),
+ /// unique identifier of a finger.
+ pub id: u64
}
pub type ScanCode = u8;