module FRP.Netwire.Input.JavaScript.Key ( Key(..), MouseButton(..), fromKey, fromMouseButton ) where import qualified FRP.Netwire.Input 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 deriving (Eq, Show) data MouseButton = MouseLeft | MouseMiddle | MouseRight deriving (Eq, Show) instance FRP.Netwire.Input.Key Key instance FRP.Netwire.Input.MouseButton MouseButton fromKey :: Key -> [Int] fromKey KeyA = [65, 97] fromKey KeyB = [66, 98] fromKey KeyC = [67, 99] fromKey KeyD = [100, 68] fromKey KeyE = [101, 69] fromKey KeyF = [102, 70] fromKey KeyG = [103, 71] fromKey KeyH = [104, 72] fromKey KeyI = [105, 73] fromKey KeyJ = [106, 74] fromKey KeyK = [107, 75] fromKey KeyL = [108, 76] fromKey KeyM = [109, 77] fromKey KeyN = [110, 78] fromKey KeyO = [111, 79] fromKey KeyP = [112, 80] fromKey KeyQ = [113, 81] fromKey KeyR = [114, 82] fromKey KeyS = [115, 83] fromKey KeyT = [116, 84] fromKey KeyU = [117, 85] fromKey KeyV = [118, 86] fromKey KeyW = [119, 87] fromKey KeyX = [120, 88] fromKey KeyY = [121, 89] fromKey KeyZ = [122, 90] fromKey Key0 = [48] fromKey Key1 = [49] fromKey Key2 = [50] fromKey Key3 = [51] fromKey Key4 = [52] fromKey Key5 = [53] fromKey Key6 = [54] fromKey Key7 = [55] fromKey Key8 = [56] fromKey Key9 = [57] fromKey KeySpace = [32] fromKey KeyEnter = [13] fromKey KeyTab = [9] fromKey KeyEsc = [27] fromKey KeyBackspace = [8] fromKey KeyShift = [16] fromKey KeyControl = [17] fromKey KeyAlt = [18] fromKey KeyCapsLock = [20] fromKey KeyNumLock = [144] fromKey KeyArrowLeft = [37] fromKey KeyArrowUp = [38] fromKey KeyArrowRight = [39] fromKey KeyArrowDown = [40] fromKey KeyIns = [45] fromKey KeyDel = [46] fromKey KeyHome = [36] fromKey KeyEnd = [35] fromKey KeyPgUp = [33] fromKey KeyPgDown = [34] fromKey KeyF1 = [112] fromKey KeyF2 = [113] fromKey KeyF3 = [114] fromKey KeyF4 = [115] fromKey KeyF5 = [116] fromKey KeyF6 = [117] fromKey KeyF7 = [118] fromKey KeyF8 = [119] fromKey KeyF9 = [120] fromKey KeyF10 = [121] fromKey KeyF11 = [122] fromKey KeyF12 = [123] fromKey KeyPadDel = [46] fromKey KeyPadIns = [45] fromKey KeyPadEnd = [35] fromKey KeyPadDown = [40] fromKey KeyPadPgDown = [34] fromKey KeyPadLeft = [37] fromKey KeyPadRight = [39] fromKey KeyPadHome = [36] fromKey KeyPadUp = [38] fromKey KeyPadPgUp = [33] fromKey KeyPadAdd = [107] fromKey KeyPadSub = [109] fromKey KeyPadMul = [106] fromKey KeyPadDiv = [111] fromKey KeyPadEnter = [13] fromKey KeyPadDot = [46] fromKey KeyPad0 = [48] fromKey KeyPad1 = [49] fromKey KeyPad2 = [50] fromKey KeyPad3 = [51] fromKey KeyPad4 = [52] fromKey KeyPad5 = [53] fromKey KeyPad6 = [54] fromKey KeyPad7 = [55] fromKey KeyPad8 = [56] fromKey KeyPad9 = [57] fromMouseButton :: MouseButton -> Int fromMouseButton MouseLeft = 0 fromMouseButton MouseMiddle = 1 fromMouseButton MouseRight = 2