{-# LANGUAGE PatternGuards #-}
{-# LANGUAGE RankNTypes #-}
{-# OPTIONS_HADDOCK hide #-}
module Graphics.Gloss.Internals.Interface.Common.Exit
(callback_exit)
where
import Graphics.Gloss.Internals.Interface.Backend.Types
callback_exit :: a -> Callback
callback_exit :: a -> Callback
callback_exit a
stateRef
= KeyboardMouseCallback -> Callback
KeyMouse (a -> KeyboardMouseCallback
forall a. a -> KeyboardMouseCallback
keyMouse_exit a
stateRef)
keyMouse_exit :: a -> KeyboardMouseCallback
keyMouse_exit :: a -> KeyboardMouseCallback
keyMouse_exit
a
_
IORef a
backend
Key
key KeyState
keyState Modifiers
_
(Int, Int)
_
| Key
key Key -> Key -> Bool
forall a. Eq a => a -> a -> Bool
== SpecialKey -> Key
SpecialKey SpecialKey
KeyEsc
, KeyState
keyState KeyState -> KeyState -> Bool
forall a. Eq a => a -> a -> Bool
== KeyState
Down
= IORef a -> IO ()
forall a. Backend a => IORef a -> IO ()
exitBackend IORef a
backend
| Bool
otherwise
= () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()