module Keymap
  def self.default()
    {
      'd'           => 'DEBUG',
      'space'       => 'NEXT',
      'down'        => 'NEXT',
      'right'       => 'NEXT',
      'pagedown'    => 'NEXT',
      'up'          => 'PREV',
      'left'        => 'PREV',
      'pageup'      => 'PREV',
      'SPACE'       => 'NEXTSEC',
      'DOWN'        => 'NEXTSEC',
      'RIGHT'       => 'NEXTSEC',
      'PAGEDOWN'    => 'NEXTSEC',
      'UP'          => 'PREVSEC',
      'LEFT'        => 'PREVSEC',
      'PAGEUP'      => 'PREVSEC',
      'R'           => 'RELOAD',
      'r'           => 'REFRESH',
      'c'           => 'CONTENTS',
      't'           => 'CONTENTS',
      'h'           => 'HELP',
      '/'           => 'HELP',
      '?'           => 'HELP',
      'b'           => 'BLANK',
      '.'           => 'BLANK',
      'F'           => 'FOOTER',
      'f'           => 'FOLLOW',
      'n'           => 'NOTES',
      'esc'         => 'CLEAR',
      'p'           => 'PAUSE',
      'P'           => 'PRESHOW',
      'x'           => 'EXECUTE',
      'f5'          => 'EXECUTE',
    }
  end

  def self.keycodeDictionary()
    {
      "0"           => "\\",
      "8"           => "backspace",
      "9"           => "tab",
      "12"          => "num",
      "13"          => "enter",
      "16"          => "shift",
      "17"          => "ctrl",
      "18"          => "alt",
      "19"          => "pause",
      "20"          => "caps",
      "27"          => "esc",
      "32"          => "space",
      "33"          => "pageup",
      "34"          => "pagedown",
      "35"          => "end",
      "36"          => "home",
      "37"          => "left",
      "38"          => "up",
      "39"          => "right",
      "40"          => "down",
      "44"          => "print",
      "45"          => "insert",
      "46"          => "delete",
      "48"          => "0",
      "49"          => "1",
      "50"          => "2",
      "51"          => "3",
      "52"          => "4",
      "53"          => "5",
      "54"          => "6",
      "55"          => "7",
      "56"          => "8",
      "57"          => "9",
      "59"          => ";",
      "61"          => "=",
      "65"          => "a",
      "66"          => "b",
      "67"          => "c",
      "68"          => "d",
      "69"          => "e",
      "70"          => "f",
      "71"          => "g",
      "72"          => "h",
      "73"          => "i",
      "74"          => "j",
      "75"          => "k",
      "76"          => "l",
      "77"          => "m",
      "78"          => "n",
      "79"          => "o",
      "80"          => "p",
      "81"          => "q",
      "82"          => "r",
      "83"          => "s",
      "84"          => "t",
      "85"          => "u",
      "86"          => "v",
      "87"          => "w",
      "88"          => "x",
      "89"          => "y",
      "90"          => "z",
      "91"          => "cmd",
      "92"          => "cmd",
      "93"          => "cmd",
      "96"          => "num_0",
      "97"          => "num_1",
      "98"          => "num_2",
      "99"          => "num_3",
      "100"         => "num_4",
      "101"         => "num_5",
      "102"         => "num_6",
      "103"         => "num_7",
      "104"         => "num_8",
      "105"         => "num_9",
      "106"         => "num_multiply",
      "107"         => "num_add",
      "108"         => "num_enter",
      "109"         => "num_subtract",
      "110"         => "num_decimal",
      "111"         => "num_divide",
      "112"         => "f1",
      "113"         => "f2",
      "114"         => "f3",
      "115"         => "f4",
      "116"         => "f5",
      "117"         => "f6",
      "118"         => "f7",
      "119"         => "f8",
      "120"         => "f9",
      "121"         => "f10",
      "122"         => "f11",
      "123"         => "f12",
      "124"         => "print",
      "144"         => "num",
      "145"         => "scroll",
      "173"         => "-",
      "186"         => ";",
      "187"         => "=",
      "188"         => ",",
      "189"         => "-",
      "190"         => ".",
      "191"         => "/",
      "192"         => "`",
      "219"         => "[",
      "220"         => "\\",
      "221"         => "]",
      "222"         => "'",
      "223"         => "`",
      "224"         => "cmd",
      "225"         => "alt",
      "57392"       => "ctrl",
      "63289"       => "num",
    }
  end

  def self.shiftedKeyDictionary()
    {
      "0"           => ")",
      "1"           => "!",
      "2"           => "@",
      "3"           => "#",
      "4"           => "$",
      "5"           => "%",
      "6"           => "^",
      "7"           => "&",
      "8"           => "*",
      "9"           => "(",
      "/"           => "?",
      "."           => ">",
      ","           => "<",
      "'"           => "\"",
      ";"           => ":",
      "["           => "{",
      "]"           => "}",
      "\\"          => "|",
      "`"           => "~",
      "="           => "+",
      "-"           => "_",
      "space"       => "SPACE",
      "down"        => "DOWN",
      "right"       => "RIGHT",
      "pagedown"    => "PAGEDOWN",
      "up"          => "UP",
      "left"        => "LEFT",
      "pageup"      => "PAGEUP",
    }
  end

end
