module Gamgine.State.InputInfo where
import qualified Graphics.UI.GLFW as GLFW
import Gamgine.Control ((?))
import qualified Gamgine.Math.Vect as V
import Control.Applicative ((<$>), (<*>))

data Modifier = Ctrl | Alt | Shift deriving (Eq, Ord)

-- | mouse position in world coordinates
type MousePos = V.Vect

-- | if the key/mouse button was pressed or released
data InputState = Pressed | Released deriving (Eq, Ord)

isModifierPressed :: Modifier -> GLFW.ModifierKeys -> Bool
isModifierPressed Ctrl  = GLFW.modifierKeysControl
isModifierPressed Alt   = GLFW.modifierKeysAlt
isModifierPressed Shift = GLFW.modifierKeysShift