module Data.DOM.KeyEvent
       (initKeyEvent, cCHAR_UNDEFINED, cDOM_VK_0, cDOM_VK_1, cDOM_VK_2,
        cDOM_VK_3, cDOM_VK_4, cDOM_VK_5, cDOM_VK_6, cDOM_VK_7, cDOM_VK_8,
        cDOM_VK_9, cDOM_VK_A, cDOM_VK_ACCEPT, cDOM_VK_ADD, cDOM_VK_AGAIN,
        cDOM_VK_ALL_CANDIDATES, cDOM_VK_ALPHANUMERIC, cDOM_VK_ALT,
        cDOM_VK_ALT_GRAPH, cDOM_VK_AMPERSAND, cDOM_VK_ASTERISK, cDOM_VK_AT,
        cDOM_VK_B, cDOM_VK_BACK_QUOTE, cDOM_VK_BACK_SLASH,
        cDOM_VK_BACK_SPACE, cDOM_VK_BRACELEFT, cDOM_VK_BRACERIGHT,
        cDOM_VK_C, cDOM_VK_CANCEL, cDOM_VK_CAPS_LOCK, cDOM_VK_CIRCUMFLEX,
        cDOM_VK_CLEAR, cDOM_VK_CLOSE_BRACKET, cDOM_VK_CODE_INPUT,
        cDOM_VK_COLON, cDOM_VK_COMMA, cDOM_VK_COMPOSE, cDOM_VK_CONTROL,
        cDOM_VK_CONVERT, cDOM_VK_COPY, cDOM_VK_CUT, cDOM_VK_D,
        cDOM_VK_DEAD_ABOVEDOT, cDOM_VK_DEAD_ABOVERING, cDOM_VK_DEAD_ACUTE,
        cDOM_VK_DEAD_BREVE, cDOM_VK_DEAD_CARON, cDOM_VK_DEAD_CEDILLA,
        cDOM_VK_DEAD_CIRCUMFLEX, cDOM_VK_DEAD_DIAERESIS,
        cDOM_VK_DEAD_DOUBLEACUTE, cDOM_VK_DEAD_GRAVE, cDOM_VK_DEAD_IOTA,
        cDOM_VK_DEAD_MACRON, cDOM_VK_DEAD_OGONEK,
        cDOM_VK_DEAD_SEMIVOICED_SOUND, cDOM_VK_DEAD_TILDE,
        cDOM_VK_DEAD_VOICED_SOUND, cDOM_VK_DECIMAL, cDOM_VK_DELETE,
        cDOM_VK_DIVIDE, cDOM_VK_DOLLAR, cDOM_VK_DOWN, cDOM_VK_E,
        cDOM_VK_END, cDOM_VK_ENTER, cDOM_VK_EQUALS, cDOM_VK_ESCAPE,
        cDOM_VK_EURO_SIGN, cDOM_VK_EXCLAMATION_MARK, cDOM_VK_F, cDOM_VK_F1,
        cDOM_VK_F10, cDOM_VK_F11, cDOM_VK_F12, cDOM_VK_F13, cDOM_VK_F14,
        cDOM_VK_F15, cDOM_VK_F16, cDOM_VK_F17, cDOM_VK_F18, cDOM_VK_F19,
        cDOM_VK_F2, cDOM_VK_F20, cDOM_VK_F21, cDOM_VK_F22, cDOM_VK_F23,
        cDOM_VK_F24, cDOM_VK_F3, cDOM_VK_F4, cDOM_VK_F5, cDOM_VK_F6,
        cDOM_VK_F7, cDOM_VK_F8, cDOM_VK_F9, cDOM_VK_FINAL, cDOM_VK_FIND,
        cDOM_VK_FULL_WIDTH, cDOM_VK_G, cDOM_VK_GREATER, cDOM_VK_H,
        cDOM_VK_HALF_WIDTH, cDOM_VK_HELP, cDOM_VK_HIRAGANA, cDOM_VK_HOME,
        cDOM_VK_I, cDOM_VK_INSERT, cDOM_VK_INVERTED_EXCLAMATION_MARK,
        cDOM_VK_J, cDOM_VK_JAPANESE_HIRAGANA, cDOM_VK_JAPANESE_KATAKANA,
        cDOM_VK_JAPANESE_ROMAN, cDOM_VK_K, cDOM_VK_KANA, cDOM_VK_KANJI,
        cDOM_VK_KATAKANA, cDOM_VK_KP_DOWN, cDOM_VK_KP_LEFT,
        cDOM_VK_KP_RIGHT, cDOM_VK_KP_UP, cDOM_VK_L, cDOM_VK_LEFT,
        cDOM_VK_LEFT_PARENTHESIS, cDOM_VK_LESS, cDOM_VK_M, cDOM_VK_META,
        cDOM_VK_MINUS, cDOM_VK_MODECHANGE, cDOM_VK_MULTIPLY, cDOM_VK_N,
        cDOM_VK_NONCONVERT, cDOM_VK_NUM_LOCK, cDOM_VK_NUMBER_SIGN,
        cDOM_VK_NUMPAD0, cDOM_VK_NUMPAD1, cDOM_VK_NUMPAD2, cDOM_VK_NUMPAD3,
        cDOM_VK_NUMPAD4, cDOM_VK_NUMPAD5, cDOM_VK_NUMPAD6, cDOM_VK_NUMPAD7,
        cDOM_VK_NUMPAD8, cDOM_VK_NUMPAD9, cDOM_VK_O, cDOM_VK_OPEN_BRACKET,
        cDOM_VK_P, cDOM_VK_PAGE_DOWN, cDOM_VK_PAGE_UP, cDOM_VK_PASTE,
        cDOM_VK_PAUSE, cDOM_VK_PERIOD, cDOM_VK_PLUS,
        cDOM_VK_PREVIOUS_CANDIDATE, cDOM_VK_PRINTSCREEN, cDOM_VK_PROPS,
        cDOM_VK_Q, cDOM_VK_QUOTE, cDOM_VK_QUOTEDBL, cDOM_VK_R,
        cDOM_VK_RIGHT, cDOM_VK_RIGHT_PARENTHESIS, cDOM_VK_ROMAN_CHARACTERS,
        cDOM_VK_S, cDOM_VK_SCROLL_LOCK, cDOM_VK_SEMICOLON,
        cDOM_VK_SEPARATER, cDOM_VK_SHIFT, cDOM_VK_SLASH, cDOM_VK_SPACE,
        cDOM_VK_STOP, cDOM_VK_SUBTRACT, cDOM_VK_T, cDOM_VK_TAB, cDOM_VK_U,
        cDOM_VK_UNDEFINED, cDOM_VK_UNDERSCORE, cDOM_VK_UNDO, cDOM_VK_UP,
        cDOM_VK_V, cDOM_VK_W, cDOM_VK_X, cDOM_VK_Y, cDOM_VK_Z, get'ctrlKey,
        getm'ctrlKey, get'shiftKey, getm'shiftKey, get'altKey, getm'altKey,
        get'metaKey, getm'metaKey, get'keyCode, getm'keyCode, get'charCode,
        getm'charCode)
       where
import Data.DOM.Events
import Control.Monad
import BrownPLT.JavaScript
import Data.DOM.WBTypes
import Data.DOM.Views
import Data.DOM.Dom
import Data.DOM.Document (createElement)
 
initKeyEvent ::
             (Monad mn, CKeyEvent this, CAbstractView viewArg) =>
               Expression String ->
                 Expression Bool ->
                   Expression Bool ->
                     Expression Bool ->
                       Expression Bool ->
                         Expression Bool ->
                           Expression Bool ->
                             Expression Double ->
                               Expression Double ->
                                 Expression viewArg -> Expression this -> mn (Expression ())
initKeyEvent a b c d e f g h i j thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "initKeyEvent")
       return
         (CallExpr et r
            [a /\ et, b /\ et, c /\ et, d /\ et, e /\ et, f /\ et, g /\ et,
             h /\ et, i /\ et, j /\ et])
cCHAR_UNDEFINED = 65535
cDOM_VK_0 = 48
cDOM_VK_1 = 49
cDOM_VK_2 = 50
cDOM_VK_3 = 51
cDOM_VK_4 = 52
cDOM_VK_5 = 53
cDOM_VK_6 = 54
cDOM_VK_7 = 55
cDOM_VK_8 = 56
cDOM_VK_9 = 57
cDOM_VK_A = 65
cDOM_VK_ACCEPT = 30
cDOM_VK_ADD = 107
cDOM_VK_AGAIN = 65481
cDOM_VK_ALL_CANDIDATES = 256
cDOM_VK_ALPHANUMERIC = 240
cDOM_VK_ALT = 18
cDOM_VK_ALT_GRAPH = 65406
cDOM_VK_AMPERSAND = 150
cDOM_VK_ASTERISK = 151
cDOM_VK_AT = 512
cDOM_VK_B = 66
cDOM_VK_BACK_QUOTE = 192
cDOM_VK_BACK_SLASH = 92
cDOM_VK_BACK_SPACE = 8
cDOM_VK_BRACELEFT = 161
cDOM_VK_BRACERIGHT = 162
cDOM_VK_C = 67
cDOM_VK_CANCEL = 3
cDOM_VK_CAPS_LOCK = 20
cDOM_VK_CIRCUMFLEX = 514
cDOM_VK_CLEAR = 12
cDOM_VK_CLOSE_BRACKET = 93
cDOM_VK_CODE_INPUT = 258
cDOM_VK_COLON = 513
cDOM_VK_COMMA = 44
cDOM_VK_COMPOSE = 65312
cDOM_VK_CONTROL = 17
cDOM_VK_CONVERT = 28
cDOM_VK_COPY = 65485
cDOM_VK_CUT = 65489
cDOM_VK_D = 68
cDOM_VK_DEAD_ABOVEDOT = 134
cDOM_VK_DEAD_ABOVERING = 136
cDOM_VK_DEAD_ACUTE = 129
cDOM_VK_DEAD_BREVE = 133
cDOM_VK_DEAD_CARON = 138
cDOM_VK_DEAD_CEDILLA = 139
cDOM_VK_DEAD_CIRCUMFLEX = 130
cDOM_VK_DEAD_DIAERESIS = 135
cDOM_VK_DEAD_DOUBLEACUTE = 137
cDOM_VK_DEAD_GRAVE = 128
cDOM_VK_DEAD_IOTA = 141
cDOM_VK_DEAD_MACRON = 132
cDOM_VK_DEAD_OGONEK = 140
cDOM_VK_DEAD_SEMIVOICED_SOUND = 143
cDOM_VK_DEAD_TILDE = 131
cDOM_VK_DEAD_VOICED_SOUND = 142
cDOM_VK_DECIMAL = 110
cDOM_VK_DELETE = 127
cDOM_VK_DIVIDE = 111
cDOM_VK_DOLLAR = 515
cDOM_VK_DOWN = 40
cDOM_VK_E = 69
cDOM_VK_END = 35
cDOM_VK_ENTER = 13
cDOM_VK_EQUALS = 61
cDOM_VK_ESCAPE = 27
cDOM_VK_EURO_SIGN = 516
cDOM_VK_EXCLAMATION_MARK = 517
cDOM_VK_F = 70
cDOM_VK_F1 = 112
cDOM_VK_F10 = 121
cDOM_VK_F11 = 122
cDOM_VK_F12 = 123
cDOM_VK_F13 = 61440
cDOM_VK_F14 = 61441
cDOM_VK_F15 = 61442
cDOM_VK_F16 = 61443
cDOM_VK_F17 = 61444
cDOM_VK_F18 = 61445
cDOM_VK_F19 = 61446
cDOM_VK_F2 = 113
cDOM_VK_F20 = 61447
cDOM_VK_F21 = 61448
cDOM_VK_F22 = 61449
cDOM_VK_F23 = 61450
cDOM_VK_F24 = 61451
cDOM_VK_F3 = 114
cDOM_VK_F4 = 115
cDOM_VK_F5 = 116
cDOM_VK_F6 = 117
cDOM_VK_F7 = 118
cDOM_VK_F8 = 119
cDOM_VK_F9 = 120
cDOM_VK_FINAL = 24
cDOM_VK_FIND = 65488
cDOM_VK_FULL_WIDTH = 243
cDOM_VK_G = 71
cDOM_VK_GREATER = 160
cDOM_VK_H = 72
cDOM_VK_HALF_WIDTH = 244
cDOM_VK_HELP = 156
cDOM_VK_HIRAGANA = 242
cDOM_VK_HOME = 36
cDOM_VK_I = 73
cDOM_VK_INSERT = 155
cDOM_VK_INVERTED_EXCLAMATION_MARK = 518
cDOM_VK_J = 74
cDOM_VK_JAPANESE_HIRAGANA = 260
cDOM_VK_JAPANESE_KATAKANA = 259
cDOM_VK_JAPANESE_ROMAN = 261
cDOM_VK_K = 75
cDOM_VK_KANA = 21
cDOM_VK_KANJI = 25
cDOM_VK_KATAKANA = 241
cDOM_VK_KP_DOWN = 225
cDOM_VK_KP_LEFT = 226
cDOM_VK_KP_RIGHT = 227
cDOM_VK_KP_UP = 224
cDOM_VK_L = 76
cDOM_VK_LEFT = 37
cDOM_VK_LEFT_PARENTHESIS = 519
cDOM_VK_LESS = 153
cDOM_VK_M = 77
cDOM_VK_META = 157
cDOM_VK_MINUS = 45
cDOM_VK_MODECHANGE = 31
cDOM_VK_MULTIPLY = 106
cDOM_VK_N = 78
cDOM_VK_NONCONVERT = 29
cDOM_VK_NUM_LOCK = 144
cDOM_VK_NUMBER_SIGN = 520
cDOM_VK_NUMPAD0 = 96
cDOM_VK_NUMPAD1 = 97
cDOM_VK_NUMPAD2 = 98
cDOM_VK_NUMPAD3 = 99
cDOM_VK_NUMPAD4 = 100
cDOM_VK_NUMPAD5 = 101
cDOM_VK_NUMPAD6 = 102
cDOM_VK_NUMPAD7 = 103
cDOM_VK_NUMPAD8 = 104
cDOM_VK_NUMPAD9 = 105
cDOM_VK_O = 79
cDOM_VK_OPEN_BRACKET = 91
cDOM_VK_P = 80
cDOM_VK_PAGE_DOWN = 34
cDOM_VK_PAGE_UP = 33
cDOM_VK_PASTE = 65487
cDOM_VK_PAUSE = 19
cDOM_VK_PERIOD = 46
cDOM_VK_PLUS = 521
cDOM_VK_PREVIOUS_CANDIDATE = 257
cDOM_VK_PRINTSCREEN = 154
cDOM_VK_PROPS = 65482
cDOM_VK_Q = 81
cDOM_VK_QUOTE = 222
cDOM_VK_QUOTEDBL = 152
cDOM_VK_R = 82
cDOM_VK_RIGHT = 39
cDOM_VK_RIGHT_PARENTHESIS = 522
cDOM_VK_ROMAN_CHARACTERS = 245
cDOM_VK_S = 83
cDOM_VK_SCROLL_LOCK = 145
cDOM_VK_SEMICOLON = 59
cDOM_VK_SEPARATER = 108
cDOM_VK_SHIFT = 16
cDOM_VK_SLASH = 47
cDOM_VK_SPACE = 32
cDOM_VK_STOP = 65480
cDOM_VK_SUBTRACT = 109
cDOM_VK_T = 84
cDOM_VK_TAB = 9
cDOM_VK_U = 85
cDOM_VK_UNDEFINED = 0
cDOM_VK_UNDERSCORE = 523
cDOM_VK_UNDO = 65483
cDOM_VK_UP = 38
cDOM_VK_V = 86
cDOM_VK_W = 87
cDOM_VK_X = 88
cDOM_VK_Y = 89
cDOM_VK_Z = 90
 
get'ctrlKey ::
            (Monad mn, CKeyEvent this) =>
              Expression this -> mn (Expression Bool)
get'ctrlKey thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "ctrlKey")
       return r
 
getm'ctrlKey ::
             (Monad mn, CKeyEvent this) =>
               Expression this -> mn (Expression Bool)
getm'ctrlKey = get'ctrlKey
 
get'shiftKey ::
             (Monad mn, CKeyEvent this) =>
               Expression this -> mn (Expression Bool)
get'shiftKey thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "shiftKey")
       return r
 
getm'shiftKey ::
              (Monad mn, CKeyEvent this) =>
                Expression this -> mn (Expression Bool)
getm'shiftKey = get'shiftKey
 
get'altKey ::
           (Monad mn, CKeyEvent this) =>
             Expression this -> mn (Expression Bool)
get'altKey thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "altKey")
       return r
 
getm'altKey ::
            (Monad mn, CKeyEvent this) =>
              Expression this -> mn (Expression Bool)
getm'altKey = get'altKey
 
get'metaKey ::
            (Monad mn, CKeyEvent this) =>
              Expression this -> mn (Expression Bool)
get'metaKey thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "metaKey")
       return r
 
getm'metaKey ::
             (Monad mn, CKeyEvent this) =>
               Expression this -> mn (Expression Bool)
getm'metaKey = get'metaKey
 
get'keyCode ::
            (Monad mn, CKeyEvent this) =>
              Expression this -> mn (Expression Double)
get'keyCode thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "keyCode")
       return r
 
getm'keyCode ::
             (Monad mn, CKeyEvent this) =>
               Expression this -> mn (Expression Double)
getm'keyCode = get'keyCode
 
get'charCode ::
             (Monad mn, CKeyEvent this) =>
               Expression this -> mn (Expression Double)
get'charCode thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "charCode")
       return r
 
getm'charCode ::
              (Monad mn, CKeyEvent this) =>
                Expression this -> mn (Expression Double)
getm'charCode = get'charCode