| .TH "SDL_keysym" "3" "Tue 11 Sep 2001, 23:00" "SDL" "SDL API Reference" |
| .SH "NAME" |
| SDL_keysym \- Keysym structure |
| .SH "STRUCTURE DEFINITION" |
| .PP |
| .nf |
| \f(CWtypedef struct{ |
| Uint8 scancode; |
| SDLKey sym; |
| SDLMod mod; |
| Uint16 unicode; |
| } SDL_keysym;\fR |
| .fi |
| .PP |
| .SH "STRUCTURE DATA" |
| .TP 20 |
| \fBscancode\fR |
| Hardware specific scancode |
| .TP 20 |
| \fBsym\fR |
| SDL virtual keysym |
| .TP 20 |
| \fBmod\fR |
| Current key modifiers |
| .TP 20 |
| \fBunicode\fR |
| Translated character |
| .SH "DESCRIPTION" |
| .PP |
| 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\&. |
| .PP |
| 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: |
| .PP |
| .nf |
| \f(CW\&. |
| \&. |
| while(SDL_PollEvent(&event)){ |
| switch(event\&.type){ |
| case SDL_KEYDOWN: |
| if(event\&.key\&.keysym\&.sym==SDLK_LEFT) |
| move_left(); |
| break; |
| \&. |
| \&. |
| \&. |
| } |
| } |
| \&. |
| \&.\fR |
| .fi |
| .PP |
| \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: |
| .PP |
| .nf |
| \f(CWchar ch; |
| if ( (keysym\&.unicode & 0xFF80) == 0 ) { |
| ch = keysym\&.unicode & 0x7F; |
| } |
| else { |
| printf("An International Character\&. |
| "); |
| }\fR |
| .fi |
| .PP |
| UNICODE translation does have a slight overhead so don\&'t enable it unless its needed\&. |
| .SH "SEE ALSO" |
| .PP |
| \fI\fBSDLKey\fR\fR |
| .\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:00 |