-- | Display mode is for drawing a static picture. module Graphics.Gloss.Interface.IO.Interact ( module Graphics.Gloss.Data.Display , module Graphics.Gloss.Data.Picture , module Graphics.Gloss.Data.Color , interactIO , Controller (..) , Event(..), Key(..), SpecialKey(..), MouseButton(..), KeyState(..), Modifiers(..)) where import Graphics.Gloss.Data.Display import Graphics.Gloss.Data.Controller import Graphics.Gloss.Data.Picture import Graphics.Gloss.Data.Color import Graphics.Gloss.Internals.Interface.Event import Graphics.Gloss.Internals.Interface.Interact import Graphics.Gloss.Internals.Interface.Backend -- | Open a new window and interact with an infrequently updated picture. -- -- Similar to `displayIO`, except that you manage your own events. -- interactIO :: Display -- ^ Display mode. -> Color -- ^ Background color. -> world -- ^ Initial world state. -> (world -> IO Picture) -- ^ A function to produce the current picture. -> (Event -> world -> IO world) -- ^ A function to handle input events. -> (Controller -> IO ()) -- ^ Callback to take the display controller. -> IO () interactIO dis backColor worldInit makePicture handleEvent eatController = interactWithBackend defaultBackendState dis backColor worldInit makePicture handleEvent eatController