ZoriaRPG

std_keyboard.zh

Jan 19th, 2017
62
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //std_keyboard.zh for ZC 2.future 2.54
  2. //Beta 52, or later.
  3. //Version ID: 20JAN2017
  4.  
  5. /*
  6.  
  7. Constants that define the keyboard layout. I need to check an EU and a US keyboard
  8. visually to verify if I set the proper symbols;  and I do not think that ZScript
  9. can handle some symbols on the UK layout.
  10.  
  11. */
  12.  
  13. const int KEYBOARD_TYPE = 0; //0 == US, 1 == UK, 2 == EU/GR
  14. const int KEYBOARD_LAYOUT_US = 0;
  15. const int KEYBOARD_LAYOUT_UK = 1;
  16. const int KEYBOARD_LAYOUT_EU = 2;
  17.  
  18. //Special Circumstance Characters to store in strings if needed.
  19. const int CHAR_ERROR        = -1;
  20. const int CHAR_BACKSPC      = -2;
  21. const int CHAR_DELETE       = -4;
  22. const int CHAR_HOMEKEY      = -8;
  23. const int CHAR_ENDKEY       = -16;
  24. const int CHAR_PAGEUP       = -32;
  25. const int CHAR_PAGEDOWN     = -64;
  26. const int CHAR_ARROW_U      = -128;
  27. const int CHAR_ARROW_L      = -256;
  28.  
  29. const int CHAR_ARROW_D      = -512;
  30. const int CHAR_ARROW_R      = -1024;
  31. const int CHAR_PRINTSCREEN  = -2048;
  32. const int CHAR_PAUSE        = -4096;
  33.  
  34. //8192 for special modifiers?
  35.  
  36. const int ___KEY_TIMER = 255; //Index of ____STD_GRAM[]
  37. // I think that an internal ZScript array Game->UserRAM[256] would be useful for this, as its pointer
  38. // would never change.
  39. const float KEYBOARD_REPEAT_RATE = 6; //frames per keypress. 3 == 1/20 second
  40. //const int SFX_KEYPRESS = 58; //Do we want this in the header?
  41.  
  42.  
  43.  
  44.  
  45. /*
  46.  
  47. These functions are meant to return ReadKey and Keypress, while setting the appropriate
  48. input blockers. I would like to add bool Game->ReadingKeyboard, which while true, stops
  49. key presses from being read as joystick inputs.
  50.  
  51. */
  52.  
  53. bool ReadKey(int key){
  54.     NoInput();
  55.     return Game->ReadKey[key];
  56. }
  57.  
  58. bool KeyPress(int key){ return Game->KeyPress[key]; }
  59.  
  60. int GetKeyPress(int key){
  61.     if ( ReadKey(key) ) return KeyToChar(key);
  62.     else return -1; //Is this safe? Should we return 0, which is null?
  63. }
  64.  
  65. //Returns modifier keys
  66. bool PressShift() { return (( Game->KeyPress[KEY_LSHIFT] || Game->KeyPress[KEY_RSHIFT] ) != 0);}
  67. bool PressControl(){ return (( Game->KeyPress[KEY_LCONTROL] || Game->KeyPress[KEY_RCONTROL] ) != 0);}
  68. bool CapsLock() { return Game->KeyPress[KEY_CAPSLOCK]; }
  69. bool NumLock() { return Game->KeyPress[KEY_NUMLOCK]; }
  70. bool PressWin() { return (( Game->KeyPress[KEY_LWIN] || Game->KeyPress[KEY_RWIN] ) != 0);}
  71. bool PressApple() { return (( Game->KeyPress[KEY_LWIN] || Game->KeyPress[KEY_RWIN] ) != 0);}
  72. bool PressCommand() { return Game->KeyPress[KEY_COMMAND]; }
  73. bool PressAltGR() { return Game->KeyPress[KEY_ALTGR]; }
  74.  
  75. //Is this Linux only?
  76. bool PressLinuxMenu() { return Game->KeyPress[KEY_MENU]; }
  77.  
  78. //Note that these keys are used by the ZC Ui. You can read them this way, but you should not expect
  79. //a user to utilise them, for input, without some kind of interupt system.
  80. bool FKey(int f){ if ( f > 0 && f < 13 ) return Game->KeyPress[46+f]; else return false; }
  81. bool EscKey() { return Game->KeyPress[KEY_ESC]; }
  82.  
  83.  
  84.  
  85. //converts a key to its proper char (int, in ZScript).
  86. int KeyToChar(int key) { return KeyToChar(key,false); }
  87. //bool caps ==true : caps acts as shift, == false, standard
  88. int KeyToChar(int key, bool caps){
  89.     if ( key >= 1 && key <= 26 && ( Game->KeyPress[KEY_LSHIFT] || Game->KeyPress[KEY_RSHIFT] || Game->KeyPress[KEY_CAPSLOCK] ) ) {
  90.         if ( key == KEY_A ) return 'A';
  91.         if ( key == KEY_B ) return 'B';
  92.         if ( key == KEY_C ) return 'C';
  93.         if ( key == KEY_D ) return 'D';
  94.         if ( key == KEY_E ) return 'E';
  95.         if ( key == KEY_F ) return 'F';
  96.         if ( key == KEY_G ) return 'G';
  97.         if ( key == KEY_H ) return 'H';
  98.         if ( key == KEY_I ) return 'I';
  99.         if ( key == KEY_J ) return 'J';
  100.         if ( key == KEY_K ) return 'K';
  101.         if ( key == KEY_L ) return 'L';
  102.         if ( key == KEY_M ) return 'M';
  103.         if ( key == KEY_N ) return 'N';
  104.         if ( key == KEY_O ) return 'O';
  105.         if ( key == KEY_P ) return 'P';
  106.         if ( key == KEY_Q ) return 'Q';
  107.         if ( key == KEY_R ) return 'R';
  108.         if ( key == KEY_S ) return 'S';
  109.         if ( key == KEY_T ) return 'T';
  110.         if ( key == KEY_U ) return 'U';
  111.         if ( key == KEY_V ) return 'V';
  112.         if ( key == KEY_W ) return 'W';
  113.         if ( key == KEY_X ) return 'X';
  114.         if ( key == KEY_Y ) return 'Y';
  115.         if ( key == KEY_Z ) return 'Z';
  116.         //Shiften numeric row
  117.                                        
  118.         if (  key > 26 && ( Game->KeyPress[KEY_LSHIFT] || Game->KeyPress[KEY_RSHIFT]
  119.             //if bool caps is set, and caps lock is on, read as shift
  120.             || ( Game->KeyPress[KEY_CAPSLOCK] && caps ) ) ){
  121.             if ( key == KEY_1 ) return '!';
  122.             if ( key == KEY_0 ) return ')';
  123.             if ( key == KEY_2 ) {
  124.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  125.                     return '@';
  126.                 }
  127.                
  128.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  129.                     return CHAR_DQUOTE;
  130.                 }
  131.                
  132.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  133.                     return CHAR_DQUOTE;
  134.                 }
  135.             }
  136.             if ( key == KEY_3 ) {
  137.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  138.                     return '#';
  139.                 }
  140.                
  141.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  142.                     return CHAR_POUNDS;
  143.                 }
  144.                
  145.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  146.                     return '#';
  147.                 }
  148.             }
  149.             if ( key == KEY_4 ) {
  150.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  151.                     return '$';
  152.                 }
  153.                
  154.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  155.                     return '$';
  156.                 }
  157.                
  158.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  159.                     return CHAR_EURO;
  160.                 }
  161.             }
  162.             if ( key == KEY_5 ) {
  163.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  164.                     return '%';
  165.                 }
  166.                
  167.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  168.                     return '%';
  169.                 }
  170.                
  171.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  172.                     return '%';
  173.                 }
  174.             }
  175.             if ( key == KEY_6 ) {
  176.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  177.                     return '^';
  178.                 }
  179.                
  180.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  181.                     return '^';
  182.                 }
  183.                
  184.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  185.                     return '^';
  186.                 }
  187.             }
  188.             if ( key == KEY_7 ) {
  189.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  190.                     return '&';
  191.                 }
  192.                
  193.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  194.                     return '&';
  195.                 }
  196.                
  197.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  198.                     return '&';
  199.                 }
  200.             }
  201.             if ( key == KEY_8 ) {
  202.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  203.                     return '*';
  204.                 }
  205.                
  206.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  207.                     return '*';
  208.                 }
  209.                
  210.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  211.                     return '*';
  212.                 }
  213.             }
  214.             if ( key == KEY_9 ) {
  215.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  216.                     return '(';
  217.                 }
  218.                
  219.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  220.                     return '(';
  221.                 }
  222.                
  223.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  224.                     return '(';
  225.                 }
  226.             }
  227.             if ( key == KEY_TILDE ) {
  228.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  229.                     return '~';
  230.                 }
  231.                
  232.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  233.                     return '~';
  234.                 }
  235.                
  236.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  237.                     return '~';
  238.                 }
  239.             }
  240.             if ( key == KEY_MINUS ) {
  241.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  242.                     return '_';
  243.                 }
  244.                
  245.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  246.                     return '_';
  247.                 }
  248.                
  249.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  250.                     return '_';
  251.                 }
  252.             }
  253.             if ( key == KEY_EQUALS ) {
  254.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  255.                     return '+';
  256.                 }
  257.                
  258.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  259.                     return '+';
  260.                 }
  261.                
  262.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  263.                     return '+';
  264.                 }
  265.             }
  266.             if ( key == KEY_BACKSPACE ) { //-2 is backspace
  267.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  268.                     return -2;
  269.                 }
  270.                
  271.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  272.                     return -2;
  273.                 }
  274.                
  275.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  276.                     return -2;
  277.                 }
  278.             }
  279.             if ( key == KEY_TAB ) {
  280.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  281.                     return CHAR_TAB;
  282.                 }
  283.                
  284.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  285.                     return CHAR_TAB;
  286.                 }
  287.                
  288.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  289.                     return CHAR_TAB;
  290.                 }
  291.             }
  292.             if ( key == KEY_OPENBRACE ) {
  293.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  294.                     return '{';
  295.                 }
  296.                
  297.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  298.                     return '{';
  299.                 }
  300.                
  301.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  302.                     return '{';
  303.                 }
  304.             }
  305.             if ( key == KEY_CLOSEBRACE ) {
  306.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  307.                     return '}';
  308.                 }
  309.                
  310.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  311.                     return '}';
  312.                 }
  313.                
  314.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  315.                     return '}';
  316.                 }
  317.             }
  318.             if ( key == KEY_ENTER ) {
  319.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  320.                     return CHAR_CR;
  321.                 }
  322.                
  323.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  324.                     return CHAR_CR;
  325.                 }
  326.                
  327.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  328.                     return CHAR_CR;
  329.                 }
  330.             }
  331.             if ( key == KEY_COLON ) {
  332.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  333.                     return ':';
  334.                 }
  335.                
  336.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  337.                     return ':';
  338.                 }
  339.                
  340.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  341.                     return ':';
  342.                 }
  343.             }
  344.             if ( key == KEY_QUOTE ) {
  345.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  346.                     return '"';
  347.                 }
  348.                
  349.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  350.                     return '@';
  351.                 }
  352.                
  353.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  354.                     return '@';
  355.                 }
  356.             }
  357.             if ( key == KEY_BACKSLASH ) {
  358.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  359.                     return '|';
  360.                 }
  361.                
  362.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  363.                     return '|';
  364.                 }
  365.                
  366.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  367.                     return '|';
  368.                 }
  369.             }
  370.             if ( key == KEY_BACKSLASH2 ) {
  371.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  372.                     return '|';
  373.                 }
  374.                
  375.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  376.                     return '|';
  377.                 }
  378.                
  379.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  380.                     return '|';
  381.                 }
  382.             }
  383.             if ( key == KEY_COMMA ) {
  384.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  385.                     return '<';
  386.                 }
  387.                
  388.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  389.                     return '<';
  390.                 }
  391.                
  392.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  393.                     return '<';
  394.                 }
  395.             }
  396.             if ( key == KEY_STOP ) {
  397.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  398.                     return '>';
  399.                 }
  400.                
  401.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  402.                     return '>';
  403.                 }
  404.                
  405.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  406.                     return '>';
  407.                 }
  408.             }
  409.             if ( key == KEY_SLASH ) {
  410.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  411.                     return '?';
  412.                 }
  413.                
  414.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  415.                     return '?';
  416.                 }
  417.                
  418.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  419.                     return '?';
  420.                 }
  421.             }
  422.             if ( key == KEY_SPACE ) {
  423.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  424.                     return ' ';
  425.                 }
  426.                
  427.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  428.                     return ' ';
  429.                 }
  430.                
  431.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  432.                     return ' ';
  433.                 }
  434.             }
  435.             if ( key == KEY_DEL ) { //-4 is delete
  436.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  437.                     return -4;
  438.                 }
  439.                
  440.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  441.                     return -4;
  442.                 }
  443.                
  444.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  445.                     return -4;
  446.                 }
  447.             }
  448.             if ( key == KEY_HOME ) { //-8 is home
  449.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  450.                     return -8;
  451.                 }
  452.                
  453.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  454.                     return -8;
  455.                 }
  456.                
  457.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  458.                     return -8;
  459.                 }
  460.             }
  461.             if ( key == KEY_END ) { //-16 is 'end'
  462.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  463.                     return -16;
  464.                 }
  465.                
  466.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  467.                     return -16;
  468.                 }
  469.                
  470.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  471.                     return -16;
  472.                 }
  473.             }
  474.             if ( key == KEY_PGUP ) { //-32
  475.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  476.                     return -32;
  477.                 }
  478.                
  479.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  480.                     return -32;
  481.                 }
  482.                
  483.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  484.                     return -32;
  485.                 }
  486.             }
  487.             if ( key == KEY_PGDN ) { //-64
  488.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  489.                     return -64;
  490.                 }
  491.                
  492.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  493.                     return -64;
  494.                 }
  495.                
  496.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  497.                     return -64;
  498.                 }
  499.             }
  500.             if ( key == KEY_UP ) { //ARROWS
  501.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  502.                     return -128;
  503.                 }
  504.                
  505.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  506.                     return -128;
  507.                 }
  508.                
  509.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  510.                     return -128;
  511.                 }
  512.             }
  513.             if ( key == KEY_LEFT ) { //ARROWS
  514.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  515.                     return -256;
  516.                 }
  517.                
  518.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  519.                     return -256;
  520.                 }
  521.                
  522.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  523.                     return -256;
  524.                 }
  525.             }
  526.             if ( key == KEY_DOWN ) { //ARROWS
  527.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  528.                     return -512;
  529.                 }
  530.                
  531.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  532.                     return -512;
  533.                 }
  534.                
  535.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  536.                     return -512;
  537.                 }
  538.             }
  539.             if ( key == KEY_RIGHT ) { //ARROWS
  540.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  541.                     return -1024;
  542.                 }
  543.                
  544.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  545.                     return -1024;
  546.                 }
  547.                
  548.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  549.                     return -1024;
  550.                 }
  551.             }
  552.             if ( key == KEY_SLASH_PAD ) { //Start Numeric Pad
  553.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  554.                     return '/';
  555.                 }
  556.                
  557.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  558.                     return '/';
  559.                 }
  560.                
  561.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  562.                     return '/';
  563.                 }
  564.             }
  565.             if ( key == KEY_ASTERISK ) {
  566.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  567.                     return '*';
  568.                 }
  569.                
  570.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  571.                     return '*';
  572.                 }
  573.                
  574.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  575.                     return '*';
  576.                 }
  577.             }
  578.             if ( key == KEY_MINUS_PAD ) {
  579.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  580.                     return '-';
  581.                 }
  582.                
  583.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  584.                     return '-';
  585.                 }
  586.                
  587.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  588.                     return '-';
  589.                 }
  590.             }
  591.             if ( key == KEY_PLUS_PAD ) {
  592.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  593.                     return '+';
  594.                 }
  595.                
  596.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  597.                     return '+';
  598.                 }
  599.                
  600.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  601.                     return '+';
  602.                 }
  603.             }
  604.             if ( key == KEY_DEL_PAD ) {
  605.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  606.                     return -4;
  607.                 }
  608.                
  609.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  610.                     return -4;
  611.                 }
  612.                
  613.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  614.                     return -4;
  615.                 }
  616.             }
  617.             if ( key == KEY_ENTER_PAD ) {
  618.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  619.                     return CHAR_CR;
  620.                 }
  621.                
  622.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  623.                     return CHAR_CR;
  624.                 }
  625.                
  626.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  627.                     return CHAR_CR;
  628.                 }
  629.             }
  630.             if ( key == KEY_PRTSCR ) {
  631.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  632.                     return -2048;
  633.                 }
  634.                
  635.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  636.                     return -2048;
  637.                 }
  638.                
  639.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  640.                     return -2048;
  641.                 }
  642.             }
  643.             if ( key == KEY_PAUSE ) {
  644.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  645.                     return -4096;
  646.                 }
  647.                
  648.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  649.                     return -4096;
  650.                 }
  651.                
  652.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  653.                     return -4096;
  654.                 }
  655.             }
  656.             if ( key == KEY_CIRCUMFLEX ) {
  657.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  658.                     return '^';
  659.                 }
  660.                
  661.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  662.                     return '^';
  663.                 }
  664.                
  665.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  666.                     return '^';
  667.                 }
  668.             }
  669.             if ( key == KEY_COLON2 ) {
  670.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  671.                     return ':';
  672.                 }
  673.                
  674.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  675.                     return ':';
  676.                 }
  677.                
  678.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  679.                     return ':';
  680.                 }
  681.             }
  682.            
  683.         }
  684.        
  685.        
  686.        
  687.         /*
  688.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  689.            
  690.         }
  691.        
  692.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  693.            
  694.         }
  695.        
  696.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  697.            
  698.         }
  699.         */
  700.     }//End modifier keys
  701.    
  702.     //otherwise no modifier
  703.     if ( key == KEY_A ) return 'a';
  704.     if ( key == KEY_B ) return 'b';
  705.     if ( key == KEY_C ) return 'c';
  706.     if ( key == KEY_D ) return 'd';
  707.     if ( key == KEY_E ) return 'e';
  708.     if ( key == KEY_F ) return 'f';
  709.     if ( key == KEY_G ) return 'g';
  710.     if ( key == KEY_H ) return 'h';
  711.     if ( key == KEY_I ) return 'i';
  712.     if ( key == KEY_J ) return 'j';
  713.     if ( key == KEY_K ) return 'k';
  714.     if ( key == KEY_L ) return 'l';
  715.     if ( key == KEY_M ) return 'm';
  716.     if ( key == KEY_N ) return 'n';
  717.     if ( key == KEY_O ) return 'o';
  718.     if ( key == KEY_P ) return 'p';
  719.     if ( key == KEY_Q ) return 'q';
  720.     if ( key == KEY_R ) return 'r';
  721.     if ( key == KEY_S ) return 's';
  722.     if ( key == KEY_T ) return 't';
  723.     if ( key == KEY_U ) return 'u';
  724.     if ( key == KEY_V ) return 'v';
  725.     if ( key == KEY_W ) return 'w';
  726.     if ( key == KEY_X ) return 'x';
  727.     if ( key == KEY_Y ) return 'y';
  728.     if ( key == KEY_Z ) return 'z';
  729.    
  730.     if ( key == KEY_0 || key == KEY_0_PAD ) return '0';
  731.     if ( key == KEY_1 || key == KEY_1_PAD ) return '1';
  732.     if ( key == KEY_2 || key == KEY_2_PAD ) return '2';
  733.     if ( key == KEY_3 || key == KEY_3_PAD ) return '3';
  734.     if ( key == KEY_4 || key == KEY_4_PAD ) return '4';
  735.     if ( key == KEY_5 || key == KEY_5_PAD ) return '5';
  736.     if ( key == KEY_6 || key == KEY_6_PAD ) return '6';
  737.     if ( key == KEY_7 || key == KEY_7_PAD ) return '7';
  738.     if ( key == KEY_8 || key == KEY_8_PAD ) return '8';
  739.     if ( key == KEY_9 || key == KEY_9_PAD ) return '9';
  740.    
  741.  
  742.     if ( key == KEY_TILDE ) {
  743.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  744.             return '`';
  745.         }
  746.        
  747.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  748.             return '`';
  749.         }
  750.        
  751.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  752.             return '`';
  753.         }
  754.     }
  755.     if ( key == KEY_MINUS ) {
  756.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  757.             return '-';
  758.         }
  759.        
  760.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  761.             return '-';
  762.         }
  763.        
  764.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  765.             return '-';
  766.         }
  767.     }
  768.     if ( key == KEY_EQUALS ) {
  769.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  770.             return '=';
  771.         }
  772.        
  773.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  774.             return '=';
  775.         }
  776.        
  777.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  778.             return '=';
  779.         }
  780.     }
  781.     if ( key == KEY_BACKSPACE ) { //-2 is backspace
  782.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  783.             return -2;
  784.         }
  785.        
  786.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  787.             return -2;
  788.         }
  789.        
  790.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  791.             return -2;
  792.         }
  793.     }
  794.     if ( key == KEY_TAB ) {
  795.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  796.             return CHAR_TAB;
  797.         }
  798.        
  799.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  800.             return CHAR_TAB;
  801.         }
  802.        
  803.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  804.             return CHAR_TAB;
  805.         }
  806.     }
  807.     if ( key == KEY_OPENBRACE ) {
  808.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  809.             return '[';
  810.         }
  811.        
  812.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  813.             return '[';
  814.         }
  815.        
  816.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  817.             return '[';
  818.         }
  819.     }
  820.     if ( key == KEY_CLOSEBRACE ) {
  821.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  822.             return ']';
  823.         }
  824.        
  825.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  826.             return ']';
  827.         }
  828.        
  829.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  830.             return ']';
  831.         }
  832.     }
  833.     if ( key == KEY_ENTER ) {
  834.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  835.             return CHAR_LF;
  836.         }
  837.        
  838.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  839.             return CHAR_LF;
  840.         }
  841.        
  842.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  843.             return CHAR_LF;
  844.         }
  845.     }
  846.     if ( key == KEY_COLON ) {
  847.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  848.             return CHAR_SCOLON;
  849.         }
  850.        
  851.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  852.             return CHAR_SCOLON;
  853.         }
  854.        
  855.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  856.             return CHAR_SCOLON;
  857.         }
  858.     }
  859.     if ( key == KEY_QUOTE ) {
  860.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  861.             return CHAR_QUOTE;
  862.         }
  863.        
  864.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  865.             return CHAR_QUOTE;
  866.         }
  867.        
  868.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  869.             return CHAR_QUOTE;
  870.         }
  871.     }
  872.     if ( key == KEY_BACKSLASH ) {
  873.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  874.             return CHAR_BSLASH;
  875.         }
  876.        
  877.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  878.             return CHAR_BSLASH;
  879.         }
  880.        
  881.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  882.             return CHAR_BSLASH;
  883.         }
  884.     }
  885.     if ( key == KEY_BACKSLASH2 ) {
  886.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  887.             return CHAR_BSLASH;
  888.         }
  889.        
  890.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  891.             return CHAR_BSLASH;
  892.         }
  893.        
  894.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  895.             return CHAR_BSLASH;
  896.         }
  897.     }
  898.     if ( key == KEY_COMMA ) {
  899.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  900.             return ',';
  901.         }
  902.        
  903.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  904.             return ',';
  905.         }
  906.        
  907.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  908.             return ',';
  909.         }
  910.     }
  911.     if ( key == KEY_STOP ) {
  912.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  913.             return '.';
  914.         }
  915.        
  916.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  917.             return '.';
  918.         }
  919.        
  920.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  921.             return '.';
  922.         }
  923.     }
  924.     if ( key == KEY_SLASH ) {
  925.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  926.             return '/';
  927.         }
  928.        
  929.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  930.             return '/';
  931.         }
  932.        
  933.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  934.             return '/';
  935.         }
  936.     }
  937.     if ( key == KEY_SPACE ) {
  938.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  939.             return ' ';
  940.         }
  941.        
  942.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  943.             return ' ';
  944.         }
  945.        
  946.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  947.             return ' ';
  948.         }
  949.     }
  950.     if ( key == KEY_DEL ) { //-4 is delete
  951.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  952.             return -4;
  953.         }
  954.        
  955.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  956.             return -4;
  957.         }
  958.        
  959.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  960.             return -4;
  961.         }
  962.     }
  963.     if ( key == KEY_HOME ) { //-8 is home
  964.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  965.             return -8;
  966.         }
  967.        
  968.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  969.             return -8;
  970.         }
  971.        
  972.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  973.             return -8;
  974.         }
  975.     }
  976.     if ( key == KEY_END ) { //-16 is 'end'
  977.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  978.             return -16;
  979.         }
  980.        
  981.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  982.             return -16;
  983.         }
  984.        
  985.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  986.             return -16;
  987.         }
  988.     }
  989.     if ( key == KEY_PGUP ) { //-32
  990.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  991.             return -32;
  992.         }
  993.        
  994.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  995.             return -32;
  996.         }
  997.        
  998.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  999.             return -32;
  1000.         }
  1001.     }
  1002.     if ( key == KEY_PGDN ) { //-64
  1003.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1004.             return -64;
  1005.         }
  1006.        
  1007.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1008.             return -64;
  1009.         }
  1010.        
  1011.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1012.             return -64;
  1013.         }
  1014.     }
  1015.     if ( key == KEY_UP ) { //ARROWS
  1016.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1017.             return -128;
  1018.         }
  1019.        
  1020.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1021.             return -128;
  1022.         }
  1023.        
  1024.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1025.             return -128;
  1026.         }
  1027.     }
  1028.     if ( key == KEY_LEFT ) { //ARROWS
  1029.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1030.             return -256;
  1031.         }
  1032.        
  1033.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1034.             return -256;
  1035.         }
  1036.        
  1037.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1038.             return -256;
  1039.         }
  1040.     }
  1041.     if ( key == KEY_DOWN ) { //ARROWS
  1042.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1043.             return -512;
  1044.         }
  1045.        
  1046.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1047.             return -512;
  1048.         }
  1049.        
  1050.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1051.             return -512;
  1052.         }
  1053.     }
  1054.     if ( key == KEY_RIGHT ) { //ARROWS
  1055.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1056.             return -1024;
  1057.         }
  1058.        
  1059.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1060.             return -1024;
  1061.         }
  1062.        
  1063.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1064.             return -1024;
  1065.         }
  1066.     }
  1067.     if ( key == KEY_SLASH_PAD ) { //Start Numeric Pad
  1068.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1069.             return '/';
  1070.         }
  1071.        
  1072.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1073.             return '/';
  1074.         }
  1075.        
  1076.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1077.             return '/';
  1078.         }
  1079.     }
  1080.     if ( key == KEY_ASTERISK ) {
  1081.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1082.             return '*';
  1083.         }
  1084.        
  1085.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1086.             return '*';
  1087.         }
  1088.        
  1089.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1090.             return '*';
  1091.         }
  1092.     }
  1093.     if ( key == KEY_MINUS_PAD ) {
  1094.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1095.             return '-';
  1096.         }
  1097.        
  1098.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1099.             return '-';
  1100.         }
  1101.        
  1102.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1103.             return '-';
  1104.         }
  1105.     }
  1106.     if ( key == KEY_PLUS_PAD ) {
  1107.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1108.             return '+';
  1109.         }
  1110.        
  1111.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1112.             return '+';
  1113.         }
  1114.        
  1115.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1116.             return '+';
  1117.         }
  1118.     }
  1119.     if ( key == KEY_DEL_PAD ) {
  1120.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1121.             return -4;
  1122.         }
  1123.        
  1124.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1125.             return -4;
  1126.         }
  1127.        
  1128.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1129.             return -4;
  1130.         }
  1131.     }
  1132.     if ( key == KEY_ENTER_PAD ) {
  1133.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1134.             return CHAR_LF;
  1135.         }
  1136.        
  1137.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1138.             return CHAR_LF;
  1139.         }
  1140.        
  1141.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1142.             return CHAR_LF;
  1143.         }
  1144.     }
  1145.     if ( key == KEY_PRTSCR ) {
  1146.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1147.             return -2048;
  1148.         }
  1149.        
  1150.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1151.             return -2048;
  1152.         }
  1153.        
  1154.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1155.             return -2048;
  1156.         }
  1157.     }
  1158.     if ( key == KEY_PAUSE ) {
  1159.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1160.             return -4096;
  1161.         }
  1162.        
  1163.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1164.             return -4096;
  1165.         }
  1166.        
  1167.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1168.             return -4096;
  1169.         }
  1170.     }
  1171.     if ( key == KEY_CIRCUMFLEX ) {
  1172.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1173.             return '^';
  1174.         }
  1175.        
  1176.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1177.             return '^';
  1178.         }
  1179.        
  1180.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1181.             return '^';
  1182.         }
  1183.     }
  1184.     if ( key == KEY_COLON2 ) {
  1185.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1186.             return ':';
  1187.         }
  1188.        
  1189.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1190.             return ':';
  1191.         }
  1192.        
  1193.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1194.             return ':';
  1195.         }
  1196.     }
  1197.    
  1198. }
  1199.  
  1200. //Key Constants -- !DO NOT MODIFY
  1201.  
  1202. const int KEY_A            = 1;
  1203. const int KEY_B            = 2;
  1204. const int KEY_C            = 3;
  1205. const int KEY_D            = 4;
  1206. const int KEY_E            = 5;
  1207. const int KEY_F            = 6;
  1208. const int KEY_G            = 7;
  1209. const int KEY_H            = 8;
  1210. const int KEY_I            = 9;
  1211. const int KEY_J            = 10;
  1212. const int KEY_K            = 11;
  1213. const int KEY_L            = 12;
  1214. const int KEY_M            = 13;
  1215. const int KEY_N            = 14;
  1216. const int KEY_O            = 15;
  1217. const int KEY_P            = 16;
  1218. const int KEY_Q            = 17;
  1219. const int KEY_R            = 18;
  1220. const int KEY_S            = 19;
  1221. const int KEY_T            = 20;
  1222. const int KEY_U            = 21;
  1223. const int KEY_V            = 22;
  1224. const int KEY_W            = 23;
  1225. const int KEY_X            = 24;
  1226. const int KEY_Y            = 25;
  1227. const int KEY_Z            = 26;
  1228. const int KEY_0            = 27;
  1229. const int KEY_1            = 28;
  1230. const int KEY_2            = 29;
  1231. const int KEY_3            = 30;
  1232. const int KEY_4            = 31;
  1233. const int KEY_5            = 32;
  1234. const int KEY_6            = 33;
  1235. const int KEY_7            = 34;
  1236. const int KEY_8            = 35;
  1237. const int KEY_9            = 36;
  1238. const int KEY_0_PAD        = 37;
  1239. const int KEY_1_PAD        = 38;
  1240. const int KEY_2_PAD        = 39;
  1241. const int KEY_3_PAD        = 40;
  1242. const int KEY_4_PAD        = 41;
  1243. const int KEY_5_PAD        = 42;
  1244. const int KEY_6_PAD        = 43;
  1245. const int KEY_7_PAD        = 44;
  1246. const int KEY_8_PAD        = 45;
  1247. const int KEY_9_PAD        = 46;
  1248. const int KEY_F1           = 47;
  1249. const int KEY_F2           = 48;
  1250. const int KEY_F3           = 49;
  1251. const int KEY_F4           = 50;
  1252. const int KEY_F5           = 51;
  1253. const int KEY_F6           = 52;
  1254. const int KEY_F7           = 53;
  1255. const int KEY_F8           = 54;
  1256. const int KEY_F9           = 55;
  1257. const int KEY_F10          = 56;
  1258. const int KEY_F11          = 57;
  1259. const int KEY_F12          = 58;
  1260. const int KEY_ESC          = 59;
  1261. const int KEY_TILDE        = 60;
  1262. const int KEY_MINUS        = 61;
  1263. const int KEY_EQUALS       = 62;
  1264. const int KEY_BACKSPACE    = 63;
  1265. const int KEY_TAB          = 64;
  1266. const int KEY_OPENBRACE    = 65;
  1267. const int KEY_CLOSEBRACE   = 66;
  1268. const int KEY_ENTER        = 67;
  1269. const int KEY_COLON        = 68;
  1270. const int KEY_QUOTE        = 69;
  1271. const int KEY_BACKSLASH    = 70;
  1272. const int KEY_BACKSLASH2   = 71;
  1273. const int KEY_COMMA        = 72;
  1274. const int KEY_STOP         = 73;
  1275. const int KEY_SLASH        = 74;
  1276. const int KEY_SPACE        = 75;
  1277. const int KEY_INSERT       = 76;
  1278. const int KEY_DEL          = 77;
  1279. const int KEY_HOME         = 78;
  1280. const int KEY_END          = 79;
  1281. const int KEY_PGUP         = 80;
  1282. const int KEY_PGDN         = 81;
  1283. const int KEY_LEFT         = 82;
  1284. const int KEY_RIGHT        = 83;
  1285. const int KEY_UP           = 84;
  1286. const int KEY_DOWN         = 85;
  1287. const int KEY_SLASH_PAD    = 86;
  1288. const int KEY_ASTERISK     = 87;
  1289. const int KEY_MINUS_PAD    = 88;
  1290. const int KEY_PLUS_PAD     = 89;
  1291. const int KEY_DEL_PAD      = 90;
  1292. const int KEY_ENTER_PAD    = 91;
  1293. const int KEY_PRTSCR       = 92;
  1294. const int KEY_PAUSE        = 93;
  1295. const int KEY_ABNT_C1      = 94;
  1296. const int KEY_YEN          = 95;
  1297. const int KEY_KANA         = 96;
  1298. const int KEY_CONVERT      = 97;
  1299. const int KEY_NOCONVERT    = 98;
  1300. const int KEY_AT           = 99;
  1301. const int KEY_CIRCUMFLEX   = 100;
  1302. const int KEY_COLON2       = 101;
  1303. const int KEY_KANJI        = 102;
  1304. const int KEY_EQUALS_PAD   = 103;  /* MacOS X */
  1305. const int KEY_BACKQUOTE    = 104;  /* MacOS X */
  1306. const int KEY_SEMICOLON    = 105;  /* MacOS X */
  1307. const int KEY_COMMAND      = 106;  /* MacOS X */
  1308. const int KEY_UNKNOWN1     = 107;
  1309. const int KEY_UNKNOWN2     = 108;
  1310. const int KEY_UNKNOWN3     = 109;
  1311. const int KEY_UNKNOWN4     = 110;
  1312. const int KEY_UNKNOWN5     = 111;
  1313. const int KEY_UNKNOWN6     = 112;
  1314. const int KEY_UNKNOWN7     = 113;
  1315. const int KEY_UNKNOWN8     = 114;
  1316.  
  1317. const int KEY_MODIFIERS    = 115;
  1318.  
  1319. const int KEY_LSHIFT       = 115;
  1320. const int KEY_RSHIFT       = 116;
  1321. const int KEY_LCONTROL     = 117;
  1322. const int KEY_RCONTROL     = 118;
  1323. const int KEY_ALT          = 119;
  1324. const int KEY_ALTGR        = 120;
  1325. const int KEY_LWIN         = 121;
  1326. const int KEY_RWIN         = 122;
  1327. const int KEY_MENU         = 123;
  1328. const int KEY_SCRLOCK      = 124;
  1329. const int KEY_NUMLOCK      = 125;
  1330. const int KEY_CAPSLOCK     = 126;
RAW Paste Data