home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 August / GSSH0804.iso / Action / Parsec47 / Parsec47.exe / p47 / import / SDL_keyboard.d < prev    next >
Text File  |  2003-11-29  |  4KB  |  107 lines

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga
  4.  
  5.     This library is free software; you can redistribute it and/or
  6.     modify it under the terms of the GNU Library General Public
  7.     License as published by the Free Software Foundation; either
  8.     version 2 of the License, or (at your option) any later version.
  9.  
  10.     This library is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.     Library General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU Library General Public
  16.     License along with this library; if not, write to the Free
  17.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  
  19.     Sam Lantinga
  20.     slouken@devolution.com
  21. */
  22.  
  23. /* Include file for SDL keyboard event handling */
  24.  
  25. import SDL_types;
  26. // !!! A hack! struct SDL_keysym is defined in this module,
  27. // !!! so we need to resolve the nameclash...
  28. // !!! Definitely won't work on *NIX but for now will do.
  29. import SDL_Keysym;
  30.  
  31. extern(C):
  32.  
  33. /* Keysym structure
  34.    - The scancode is hardware dependent, and should not be used by general
  35.      applications.  If no hardware scancode is available, it will be 0.
  36.  
  37.    - The 'unicode' translated character is only available when character
  38.      translation is enabled by the SDL_EnableUNICODE() API.  If non-zero,
  39.      this is a UNICODE character corresponding to the keypress.  If the
  40.      high 9 bits of the character are 0, then this maps to the equivalent
  41.      ASCII character:
  42.     char ch;
  43.     if ( (keysym.unicode & 0xFF80) == 0 ) {
  44.         ch = keysym.unicode & 0x7F;
  45.     } else {
  46.         An international character..
  47.     }
  48.  */
  49. struct SDL_keysym {
  50.     Uint8 scancode;            /* hardware specific scancode */
  51.     SDLKey sym;            /* SDL virtual keysym */
  52.     SDLMod mod;            /* current key modifiers */
  53.     Uint16 unicode;            /* translated character */
  54. }
  55.  
  56. /* This is the mask which refers to all hotkey bindings */
  57. const uint SDL_ALL_HOTKEYS        = 0xFFFFFFFF;
  58.  
  59. /* Function prototypes */
  60. /*
  61.  * Enable/Disable UNICODE translation of keyboard input.
  62.  * This translation has some overhead, so translation defaults off.
  63.  * If 'enable' is 1, translation is enabled.
  64.  * If 'enable' is 0, translation is disabled.
  65.  * If 'enable' is -1, the translation state is not changed.
  66.  * It returns the previous state of keyboard translation.
  67.  */
  68. int SDL_EnableUNICODE(int enable);
  69.  
  70. /*
  71.  * Enable/Disable keyboard repeat.  Keyboard repeat defaults to off.
  72.  * 'delay' is the initial delay in ms between the time when a key is
  73.  * pressed, and keyboard repeat begins.
  74.  * 'interval' is the time in ms between keyboard repeat events.
  75.  */
  76. const uint SDL_DEFAULT_REPEAT_DELAY        = 500;
  77. const uint SDL_DEFAULT_REPEAT_INTERVAL    = 30;
  78. /*
  79.  * If 'delay' is set to 0, keyboard repeat is disabled.
  80.  */
  81. int SDL_EnableKeyRepeat(int delay, int interval);
  82.  
  83. /*
  84.  * Get a snapshot of the current state of the keyboard.
  85.  * Returns an array of keystates, indexed by the SDLK_* syms.
  86.  * Used:
  87.  *     Uint8 *keystate = SDL_GetKeyState(NULL);
  88.  *    if ( keystate[SDLK_RETURN] ) ... <RETURN> is pressed.
  89.  */
  90. Uint8 * SDL_GetKeyState(int *numkeys);
  91.  
  92. /*
  93.  * Get the current key modifier state
  94.  */
  95. SDLMod SDL_GetModState();
  96.  
  97. /*
  98.  * Set the current key modifier state
  99.  * This does not change the keyboard state, only the key modifier flags.
  100.  */
  101. void SDL_SetModState(SDLMod modstate);
  102.  
  103. /*
  104.  * Get the name of an SDL virtual keysym
  105.  */
  106. char * SDL_GetKeyName(SDLKey key);
  107.