SDL_keyboard.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

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