{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE PatternGuards, RankNTypes #-}

-- | Callback for exiting the program.
module Graphics.Gloss.Internals.Interface.Common.Exit
	(callback_exit)
where
import Graphics.Gloss.Internals.Interface.Backend.Types

callback_exit :: a -> Callback
callback_exit stateRef
 =	KeyMouse (keyMouse_exit stateRef)

keyMouse_exit :: a -> KeyboardMouseCallback
keyMouse_exit
	_
	backend
	key keyState _
	_
	| key		== SpecialKey KeyEsc
	, keyState	== Down
	= exitBackend backend
		
	| otherwise
	= return ()