diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/libsdl-trunk/docs/html/sdlkeysym.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/libsdl-trunk/docs/html/sdlkeysym.html Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,355 @@ +
typedef struct{
+ Uint8 scancode;
+ SDLKey sym;
+ SDLMod mod;
+ Uint16 unicode;
+} SDL_keysym;The SDL_keysym structure is used by reporting key presses and releases since it is a part of the SDL_KeyboardEvent.
The scancode field should generally be left alone, it is the hardware dependent scancode returned by the keyboard. The sym field is extremely useful. It is the SDL-defined value of the key (see SDL Key Syms. This field is very useful when you are checking for certain key presses, like so: +
.
+.
+while(SDL_PollEvent(&event)){
+ switch(event.type){
+ case SDL_KEYDOWN:
+ if(event.key.keysym.sym==SDLK_LEFT)
+ move_left();
+ break;
+ .
+ .
+ .
+ }
+}
+.
+.
+mod stores the current state of the keyboard modifiers as explained in SDL_GetModState. The unicode is only used when UNICODE translation is enabled with SDL_EnableUNICODE. If unicode 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:
+char ch;
+if ( (keysym.unicode & 0xFF80) == 0 ) {
+ ch = keysym.unicode & 0x7F;
+}
+else {
+ printf("An International Character.\n");
+}
+UNICODE translation does have a slight overhead so don't enable it unless its needed.