SDL-1.2.14
[sdl_omap.git] / docs / man3 / SDL_keysym.3
CommitLineData
e14743d1 1.TH "SDL_keysym" "3" "Tue 11 Sep 2001, 23:00" "SDL" "SDL API Reference"
2.SH "NAME"
3SDL_keysym \- Keysym structure
4.SH "STRUCTURE DEFINITION"
5.PP
6.nf
7\f(CWtypedef struct{
8 Uint8 scancode;
9 SDLKey sym;
10 SDLMod mod;
11 Uint16 unicode;
12} SDL_keysym;\fR
13.fi
14.PP
15.SH "STRUCTURE DATA"
16.TP 20
17\fBscancode\fR
18Hardware specific scancode
19.TP 20
20\fBsym\fR
21SDL virtual keysym
22.TP 20
23\fBmod\fR
24Current key modifiers
25.TP 20
26\fBunicode\fR
27Translated character
28.SH "DESCRIPTION"
29.PP
30The \fBSDL_keysym\fR structure is used by reporting key presses and releases since it is a part of the \fI\fBSDL_KeyboardEvent\fR\fR\&.
31.PP
32The \fBscancode\fR field should generally be left alone, it is the hardware dependent scancode returned by the keyboard\&. The \fBsym\fR field is extremely useful\&. It is the SDL-defined value of the key (see \fISDL Key Syms\fR\&. This field is very useful when you are checking for certain key presses, like so:
33.PP
34.nf
35\f(CW\&.
36\&.
37while(SDL_PollEvent(&event)){
38 switch(event\&.type){
39 case SDL_KEYDOWN:
40 if(event\&.key\&.keysym\&.sym==SDLK_LEFT)
41 move_left();
42 break;
43 \&.
44 \&.
45 \&.
46 }
47}
48\&.
49\&.\fR
50.fi
51.PP
52 \fBmod\fR stores the current state of the keyboard modifiers as explained in \fI\fBSDL_GetModState\fP\fR\&. The \fBunicode\fR is only used when UNICODE translation is enabled with \fI\fBSDL_EnableUNICODE\fP\fR\&. If \fBunicode\fR is non-zero then this a the UNICODE character corresponding to the keypress\&. If the high 9 bits of the character are 0, then this maps to the equivalent ASCII character:
53.PP
54.nf
55\f(CWchar ch;
56if ( (keysym\&.unicode & 0xFF80) == 0 ) {
57 ch = keysym\&.unicode & 0x7F;
58}
59else {
60 printf("An International Character\&.
61");
62}\fR
63.fi
64.PP
65 UNICODE translation does have a slight overhead so don\&'t enable it unless its needed\&.
66.SH "SEE ALSO"
67.PP
68\fI\fBSDLKey\fR\fR
69.\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:00