e14743d1 |
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 |