Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5496 leency 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
#ifdef SAVE_RCSID
24
static char rcsid =
25
 "@(#) $Id: SDL_keyboard.h,v 1.2 2001/04/26 16:50:17 hercules Exp $";
26
#endif
27
 
28
/* Include file for SDL keyboard event handling */
29
 
30
#ifndef _SDL_keyboard_h
31
#define _SDL_keyboard_h
32
 
33
#include "SDL_types.h"
34
#include "SDL_keysym.h"
35
 
36
#include "begin_code.h"
37
/* Set up for C function definitions, even when using C++ */
38
#ifdef __cplusplus
39
extern "C" {
40
#endif
41
 
42
/* Keysym structure
43
   - The scancode is hardware dependent, and should not be used by general
44
     applications.  If no hardware scancode is available, it will be 0.
45
 
46
   - The 'unicode' translated character is only available when character
47
     translation is enabled by the SDL_EnableUNICODE() API.  If non-zero,
48
     this is a UNICODE character corresponding to the keypress.  If the
49
     high 9 bits of the character are 0, then this maps to the equivalent
50
     ASCII character:
51
	char ch;
52
	if ( (keysym.unicode & 0xFF80) == 0 ) {
53
		ch = keysym.unicode & 0x7F;
54
	} else {
55
		An international character..
56
	}
57
 */
58
typedef struct {
59
	Uint8 scancode;			/* hardware specific scancode */
60
	SDLKey sym;			/* SDL virtual keysym */
61
	SDLMod mod;			/* current key modifiers */
62
	Uint16 unicode;			/* translated character */
63
} SDL_keysym;
64
 
65
/* This is the mask which refers to all hotkey bindings */
66
#define SDL_ALL_HOTKEYS		0xFFFFFFFF
67
 
68
/* Function prototypes */
69
/*
70
 * Enable/Disable UNICODE translation of keyboard input.
71
 * This translation has some overhead, so translation defaults off.
72
 * If 'enable' is 1, translation is enabled.
73
 * If 'enable' is 0, translation is disabled.
74
 * If 'enable' is -1, the translation state is not changed.
75
 * It returns the previous state of keyboard translation.
76
 */
77
extern DECLSPEC int SDL_EnableUNICODE(int enable);
78
 
79
/*
80
 * Enable/Disable keyboard repeat.  Keyboard repeat defaults to off.
81
 * 'delay' is the initial delay in ms between the time when a key is
82
 * pressed, and keyboard repeat begins.
83
 * 'interval' is the time in ms between keyboard repeat events.
84
 */
85
#define SDL_DEFAULT_REPEAT_DELAY	500
86
#define SDL_DEFAULT_REPEAT_INTERVAL	30
87
/*
88
 * If 'delay' is set to 0, keyboard repeat is disabled.
89
 */
90
extern DECLSPEC int SDL_EnableKeyRepeat(int delay, int interval);
91
 
92
/*
93
 * Get a snapshot of the current state of the keyboard.
94
 * Returns an array of keystates, indexed by the SDLK_* syms.
95
 * Used:
96
 * 	Uint8 *keystate = SDL_GetKeyState(NULL);
97
 *	if ( keystate[SDLK_RETURN] ) ...  is pressed.
98
 */
99
extern DECLSPEC Uint8 * SDL_GetKeyState(int *numkeys);
100
 
101
/*
102
 * Get the current key modifier state
103
 */
104
extern DECLSPEC SDLMod SDL_GetModState(void);
105
 
106
/*
107
 * Set the current key modifier state
108
 * This does not change the keyboard state, only the key modifier flags.
109
 */
110
extern DECLSPEC void SDL_SetModState(SDLMod modstate);
111
 
112
/*
113
 * Get the name of an SDL virtual keysym
114
 */
115
extern DECLSPEC char * SDL_GetKeyName(SDLKey key);
116
 
117
 
118
/* Ends C function definitions when using C++ */
119
#ifdef __cplusplus
120
}
121
#endif
122
#include "close_code.h"
123
 
124
#endif /* _SDL_keyboard_h */