Advertisement
Guest User

Untitled

a guest
Aug 24th, 2013
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.51 KB | None | 0 0
  1. /*
  2.  * SDL2 keyboard-input/deadkey test for sdl2_x11_no_deadkeys_wo_textinput.patch
  3.  *
  4.  * Click into window to disable/enable SDL_TEXTINPUT
  5.  */
  6. #include <stdio.h>
  7. #include <SDL2/SDL.h>
  8.  
  9. void eventloop() {
  10.     while(1) {
  11.         SDL_Event ev;
  12.         if(SDL_PollEvent(&ev) == 0) {
  13.             // printf("SDL_PollEvent() didn't return an event!\n");
  14.             SDL_Delay(250);
  15.             continue;
  16.         }
  17.        
  18.         switch(ev.type) {
  19.             case SDL_QUIT:
  20.                 printf("Received SDL_QUIT - bye!\n");
  21.                 return;
  22.             case SDL_KEYUP:
  23.             case SDL_KEYDOWN:
  24.                 if(ev.type == SDL_KEYUP)
  25.                     printf("SDL_KEYUP: ");
  26.                 else
  27.                     printf("SDL_KEYDOWN: ");
  28.                
  29.                 printf("Keycode: %s Scancode: %s\n",
  30.                        SDL_GetKeyName(ev.key.keysym.sym),
  31.                        SDL_GetScancodeName(ev.key.keysym.scancode));
  32.                
  33.                 break;
  34.             case SDL_TEXTINPUT:
  35.                 printf("SDL_TEXTINPUT: %s\n", ev.text.text ? ev.text.text : "<NULL>");
  36.                 break;
  37.            
  38.             case SDL_MOUSEBUTTONDOWN:
  39.             {
  40.                 int newstate = !SDL_GetEventState(SDL_TEXTINPUT);
  41.                 printf("SDL_EventState(SDL_TEXTINPUT, %s)\n", newstate ? "SDL_ENABLE" : "SDL_DISABLE");
  42.                 SDL_EventState(SDL_TEXTINPUT, newstate);
  43.                 break;
  44.             }
  45.             default:
  46.                 // printf("SDL_Event of type: %d received\n", ev.type);
  47.                 // just ignore all the mouse events and stuff
  48.                 break;
  49.         }
  50.     }
  51. }
  52.  
  53.  
  54. int main(int argc, char** argv) {
  55.     SDL_Init(SDL_INIT_VIDEO);
  56.    
  57.     SDL_Window *win = SDL_CreateWindow("Hello World!", 100, 100, 640, 480, SDL_WINDOW_SHOWN);
  58.    
  59.     eventloop();
  60.    
  61.     SDL_DestroyWindow(win);
  62.    
  63.     SDL_Quit();
  64.    
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement