2
SDL - Simple DirectMedia Layer
3
Copyright (C) 1997-2006 Sam Lantinga
5
This library is free software; you can redistribute it and/or
6
modify it under the terms of the GNU Lesser General Public
7
License as published by the Free Software Foundation; either
8
version 2.1 of the License, or (at your option) any later version.
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
Lesser General Public License for more details.
15
You should have received a copy of the GNU Lesser General Public
16
License along with this library; if not, write to the Free Software
17
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23
/* Include file for SDL keyboard event handling */
25
#ifndef _SDL_keyboard_h
26
#define _SDL_keyboard_h
28
#include "SDL_stdinc.h"
29
#include "SDL_error.h"
30
#include "SDL_keysym.h"
32
#include "begin_code.h"
33
/* Set up for C function definitions, even when using C++ */
39
- The scancode is hardware dependent, and should not be used by general
40
applications. If no hardware scancode is available, it will be 0.
42
- The 'unicode' translated character is only available when character
43
translation is enabled by the SDL_EnableUNICODE() API. If non-zero,
44
this is a UNICODE character corresponding to the keypress. If the
45
high 9 bits of the character are 0, then this maps to the equivalent
48
if ( (keysym.unicode & 0xFF80) == 0 ) {
49
ch = keysym.unicode & 0x7F;
51
An international character..
54
typedef struct SDL_keysym {
55
Uint8 scancode; /* hardware specific scancode */
56
SDLKey sym; /* SDL virtual keysym */
57
SDLMod mod; /* current key modifiers */
58
Uint16 unicode; /* translated character */
61
/* This is the mask which refers to all hotkey bindings */
62
#define SDL_ALL_HOTKEYS 0xFFFFFFFF
64
/* Function prototypes */
66
* Enable/Disable UNICODE translation of keyboard input.
67
* This translation has some overhead, so translation defaults off.
68
* If 'enable' is 1, translation is enabled.
69
* If 'enable' is 0, translation is disabled.
70
* If 'enable' is -1, the translation state is not changed.
71
* It returns the previous state of keyboard translation.
73
extern DECLSPEC int SDLCALL SDL_EnableUNICODE(int enable);
76
* Enable/Disable keyboard repeat. Keyboard repeat defaults to off.
77
* 'delay' is the initial delay in ms between the time when a key is
78
* pressed, and keyboard repeat begins.
79
* 'interval' is the time in ms between keyboard repeat events.
81
#define SDL_DEFAULT_REPEAT_DELAY 500
82
#define SDL_DEFAULT_REPEAT_INTERVAL 30
84
* If 'delay' is set to 0, keyboard repeat is disabled.
86
extern DECLSPEC int SDLCALL SDL_EnableKeyRepeat(int delay, int interval);
87
extern DECLSPEC void SDLCALL SDL_GetKeyRepeat(int *delay, int *interval);
90
* Get a snapshot of the current state of the keyboard.
91
* Returns an array of keystates, indexed by the SDLK_* syms.
93
* Uint8 *keystate = SDL_GetKeyState(NULL);
94
* if ( keystate[SDLK_RETURN] ) ... <RETURN> is pressed.
96
extern DECLSPEC Uint8 * SDLCALL SDL_GetKeyState(int *numkeys);
99
* Get the current key modifier state
101
extern DECLSPEC SDLMod SDLCALL SDL_GetModState(void);
104
* Set the current key modifier state
105
* This does not change the keyboard state, only the key modifier flags.
107
extern DECLSPEC void SDLCALL SDL_SetModState(SDLMod modstate);
110
* Get the name of an SDL virtual keysym
112
extern DECLSPEC char * SDLCALL SDL_GetKeyName(SDLKey key);
115
/* Ends C function definitions when using C++ */
119
#include "close_code.h"
121
#endif /* _SDL_keyboard_h */