module Graphics.UI.Threepenny.Events (
click, mousemove, hover, blur, leave,
keyup, keydown,
) where
import Graphics.UI.Threepenny.Core
silence = fmap (const ())
click :: Element -> Event ()
click = silence . domEvent "click"
hover :: Element -> Event ()
hover = silence . domEvent "mouseenter"
mousemove :: Element -> Event (Int,Int)
mousemove = fmap readPair . domEvent "mousemove"
where readPair (EventData (Just x:Just y:_)) = (read x, read y)
leave :: Element -> Event ()
leave = silence . domEvent "mouseleave"
blur :: Element -> Event ()
blur = silence . domEvent "blur"
type KeyCode = Int
keydown :: Element -> Event KeyCode
keydown = fmap read1 . domEvent "keydown"
keyup :: Element -> Event KeyCode
keyup = fmap read1 . domEvent "keyup"
read1 (EventData (Just s:_)) = read s