module Graphics.Proc.Core.State.Elements.Input( InputState(..), MouseButton(..), Modifiers(..), Key(..), KeyState(..) ) where import Data.Default import Control.Monad.Trans.State.Strict import Graphics.Proc.Core.GLBridge data InputState = InputState { lastPressedKey :: Key , pressedModifiers :: Modifiers , mousePosition :: (Int, Int) , pressedButton :: Maybe MouseButton } instance Default Modifiers where def = Modifiers Up Up Up instance Default InputState where def = InputState { lastPressedKey = Char ' ' , pressedModifiers = def , mousePosition = (0, 0) , pressedButton = Nothing }