gloss-1.2.0.0: Graphics/Gloss/Internals/Interface/Common/Exit.hs
{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE PatternGuards #-}
-- | Callback for exiting the program.
module Graphics.Gloss.Internals.Interface.Common.Exit
(callback_exit)
where
import Graphics.Gloss.Internals.Interface.Callback
import qualified Graphics.UI.GLUT as GLUT
import qualified System.Exit as System
callback_exit :: a -> Callback
callback_exit stateRef
= KeyMouse (keyMouse_exit stateRef)
keyMouse_exit :: a -> GLUT.KeyboardMouseCallback
keyMouse_exit
_
key keyState _
_
-- exit
| key == GLUT.Char '\27'
, keyState == GLUT.Down
= do
-- non-freeglut doesn't like this
-- GLUT.leaveMainLoop
System.exitWith System.ExitSuccess
| otherwise
= return ()