{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PatternSynonyms #-}
{-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures #-}
module Shpadoinkle.Keyboard where
newtype KeyCode = KeyCode { unKeyCode :: Int }
deriving (Eq, Show, Ord, Enum, Num, Real, Integral)
pattern Backspace = KeyCode 8
pattern Tab = KeyCode 9
pattern Enter = KeyCode 13
pattern Shift = KeyCode 16
pattern Ctrl = KeyCode 17
pattern Alt = KeyCode 18
pattern Pause = KeyCode 19
pattern Break = KeyCode 19
pattern CapsLock = KeyCode 20
pattern Escape = KeyCode 27
pattern PageUp = KeyCode 33
pattern PageDown = KeyCode 34
pattern End = KeyCode 35
pattern Home = KeyCode 36
pattern LeftArrow = KeyCode 37
pattern UpArrow = KeyCode 38
pattern RightArrow = KeyCode 39
pattern DownArrow = KeyCode 40
pattern Insert = KeyCode 45
pattern Delete = KeyCode 46
pattern N0 = KeyCode 48
pattern N1 = KeyCode 49
pattern N2 = KeyCode 50
pattern N3 = KeyCode 51
pattern N4 = KeyCode 52
pattern N5 = KeyCode 53
pattern N6 = KeyCode 54
pattern N7 = KeyCode 55
pattern N8 = KeyCode 56
pattern N9 = KeyCode 57
pattern A = KeyCode 65
pattern B = KeyCode 66
pattern C = KeyCode 67
pattern D = KeyCode 68
pattern E = KeyCode 69
pattern F = KeyCode 70
pattern G = KeyCode 71
pattern H = KeyCode 72
pattern I = KeyCode 73
pattern J = KeyCode 74
pattern K = KeyCode 75
pattern L = KeyCode 76
pattern M = KeyCode 77
pattern N = KeyCode 78
pattern O = KeyCode 79
pattern P = KeyCode 80
pattern Q = KeyCode 81
pattern R = KeyCode 82
pattern S = KeyCode 83
pattern T = KeyCode 84
pattern U = KeyCode 85
pattern V = KeyCode 86
pattern W = KeyCode 87
pattern X = KeyCode 88
pattern Y = KeyCode 89
pattern Z = KeyCode 90
pattern LeftSuper = KeyCode 91
pattern RightSuper = KeyCode 92
pattern Select = KeyCode 93
pattern Numpad0 = KeyCode 96
pattern Numpad1 = KeyCode 97
pattern Numpad2 = KeyCode 98
pattern Numpad3 = KeyCode 99
pattern Numpad4 = KeyCode 100
pattern Numpad5 = KeyCode 101
pattern Numpad6 = KeyCode 102
pattern Numpad7 = KeyCode 103
pattern Numpad8 = KeyCode 104
pattern Numpad9 = KeyCode 105
pattern Multiply = KeyCode 106
pattern Add = KeyCode 107
pattern Subtract = KeyCode 109
pattern DecimalPoint = KeyCode 110
pattern Divide = KeyCode 111
pattern F1 = KeyCode 112
pattern F2 = KeyCode 113
pattern F3 = KeyCode 114
pattern F4 = KeyCode 115
pattern F5 = KeyCode 116
pattern F6 = KeyCode 117
pattern F7 = KeyCode 118
pattern F8 = KeyCode 119
pattern F9 = KeyCode 120
pattern F10 = KeyCode 121
pattern F11 = KeyCode 122
pattern F12 = KeyCode 123
pattern NumLock = KeyCode 144
pattern ScrollLock = KeyCode 145
pattern SemiColon = KeyCode 186
pattern EqualSign = KeyCode 187
pattern Comma = KeyCode 188
pattern Dash = KeyCode 189
pattern Period = KeyCode 190
pattern ForwardSlash = KeyCode 191
pattern GraveAccent = KeyCode 192
pattern OpenBracket = KeyCode 219
pattern BackSlash = KeyCode 220
pattern CloseBraket = KeyCode 221
pattern SingleQuote = KeyCode 222