module FWGL.Key where

-- | A mouse button.
data MouseButton = MouseLeft | MouseMiddle | MouseRight deriving (Eq, Show)

-- | A keyboard key.
data Key =
          KeyA
        | KeyB
        | KeyC
        | KeyD
        | KeyE
        | KeyF
        | KeyG
        | KeyH
        | KeyI
        | KeyJ
        | KeyK
        | KeyL
        | KeyM
        | KeyN
        | KeyO
        | KeyP
        | KeyQ
        | KeyR
        | KeyS
        | KeyT
        | KeyU
        | KeyV
        | KeyW
        | KeyX
        | KeyY
        | KeyZ
        | Key0
        | Key1
        | Key2
        | Key3
        | Key4
        | Key5
        | Key6
        | Key7
        | Key8
        | Key9
        | KeySpace
        | KeyEnter
        | KeyTab
        | KeyEsc
        | KeyBackspace
        | KeyShift
        | KeyControl
        | KeyAlt
        | KeyCapsLock
        | KeyNumLock
        | KeyArrowLeft
        | KeyArrowUp
        | KeyArrowRight
        | KeyArrowDown
        | KeyIns
        | KeyDel
        | KeyHome
        | KeyEnd
        | KeyPgUp
        | KeyPgDown
        | KeyF1
        | KeyF2
        | KeyF3
        | KeyF4
        | KeyF5
        | KeyF6
        | KeyF7
        | KeyF8
        | KeyF9
        | KeyF10
        | KeyF11
        | KeyF12
        | KeyPadDel
        | KeyPadIns
        | KeyPadEnd
        | KeyPadDown
        | KeyPadPgDown
        | KeyPadLeft
        | KeyPadRight
        | KeyPadHome
        | KeyPadUp
        | KeyPadPgUp
        | KeyPadAdd
        | KeyPadSub
        | KeyPadMul
        | KeyPadDiv
        | KeyPadEnter
        | KeyPadDot
        | KeyPad0
        | KeyPad1
        | KeyPad2
        | KeyPad3
        | KeyPad4
        | KeyPad5
        | KeyPad6
        | KeyPad7
        | KeyPad8
        | KeyPad9
        | KeyUnknown
        deriving (Eq, Show)