equal
deleted
inserted
replaced
|
1 .TH "SDL_keysym" "3" "Tue 11 Sep 2001, 23:00" "SDL" "SDL API Reference" |
|
2 .SH "NAME" |
|
3 SDL_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 |
|
18 Hardware specific scancode |
|
19 .TP 20 |
|
20 \fBsym\fR |
|
21 SDL virtual keysym |
|
22 .TP 20 |
|
23 \fBmod\fR |
|
24 Current key modifiers |
|
25 .TP 20 |
|
26 \fBunicode\fR |
|
27 Translated character |
|
28 .SH "DESCRIPTION" |
|
29 .PP |
|
30 The \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 |
|
32 The \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 \&. |
|
37 while(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; |
|
56 if ( (keysym\&.unicode & 0xFF80) == 0 ) { |
|
57 ch = keysym\&.unicode & 0x7F; |
|
58 } |
|
59 else { |
|
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 |