module Graphics.UI.Fungen.Timer (
        RefreshType(..),
        setRefresh
) where
import Graphics.UI.Fungen.UserInput
import Graphics.UI.GLUT
data RefreshType
        = Idle
        | Timer Int
setRefresh :: RefreshType -> StillDownHandler -> IO ()
setRefresh Idle stillDown = idleCallback $= Just (stillDown >> postRedisplay Nothing)
setRefresh (Timer t) stillDown = addTimerCallback t (timer stillDown t)
timer :: StillDownHandler -> Int -> TimerCallback
timer stillDown t = do
        stillDown
        postRedisplay Nothing
        addTimerCallback t (timer stillDown t)