packages feed

elm-core-sources-1.0.0: src/Touch.elm

module Touch where

{-| This is an early version of the touch library. It will likely grow to
include gestures that would be useful for both games and web-pages.

# Touches
@docs Touch, touches

# Gestures
@docs taps
-}

import Signal (Signal)
import Native.Touch
import Time (Time)

{-| Every `Touch` has `xy` coordinates. It also has an identifier
`id` to distinguish one touch from another.

A touch also keeps info about the initial point and time of contact:
`x0`, `y0`, and `t0`. This helps compute more complicated gestures
like taps, drags, and swipes which need to know about timing or direction.
-}
type alias Touch =
    { x:Int
    , y:Int
    , id:Int
    , x0:Int
    , y0:Int
    , t0:Time
    }

{-| A list of ongoing touches. -}
touches : Signal (List Touch)
touches = Native.Touch.touches

{-| The last position that was tapped. Default value is `{x=0,y=0}`.
Updates whenever the user taps the screen.
-}
taps : Signal { x:Int, y:Int }
taps = Native.Touch.taps