adding handler function
This commit is contained in:
parent
cb91cd77c4
commit
af271f85b2
1 changed files with 22 additions and 0 deletions
|
@ -18,3 +18,25 @@ class MouseClickable a us where
|
||||||
-> SDL.InputMotion -- The 'SDL.InputMotion' of the click
|
-> SDL.InputMotion -- The 'SDL.InputMotion' of the click
|
||||||
-> Int -- The number of clicks
|
-> Int -- The number of clicks
|
||||||
-> Affection us ()
|
-> Affection us ()
|
||||||
|
|
||||||
|
-- | A helper function that checks wether provided clickables have been clicked.
|
||||||
|
-- This function does not consume provided events, but passes them on.
|
||||||
|
handleMouseClicks
|
||||||
|
:: (Foldable t, MouseClickable clickable us)
|
||||||
|
=> SDL.Event -- ^ Piped event in
|
||||||
|
-> t clickable -- ^ 'MouseClickable' elemt to be checked
|
||||||
|
-> Affection us SDL.Event -- ^ Unaltered event
|
||||||
|
handleMouseClicks e clickables =
|
||||||
|
case SDL.eventPayload e of
|
||||||
|
SDL.MouseButtonEvent dat -> do
|
||||||
|
mapM_ (\clickable -> do
|
||||||
|
let SDL.P (SDL.V2 x y) = SDL.mouseButtonEventPos dat
|
||||||
|
onClick
|
||||||
|
clickable
|
||||||
|
(SDL.mouseButtonEventButton dat)
|
||||||
|
(fromIntegral x, fromIntegral y)
|
||||||
|
(SDL.mouseButtonEventMotion dat)
|
||||||
|
(fromIntegral $ SDL.mouseButtonEventClicks dat)
|
||||||
|
) clickables
|
||||||
|
return e
|
||||||
|
_ -> return e
|
||||||
|
|
Loading…
Reference in a new issue