Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. void UpdateSceneUnix()
  2. {
  3.     while(XPending(win.display) > 0)
  4.     {
  5.         XNextEvent(win.display, &event);
  6.         switch(event.type)
  7.         {
  8.             case KeyPress:
  9.                 ActivateKey(XLookupKeysym(&event.xkey, 0));
  10.             break;
  11.             case KeyRelease:
  12.                 DeactivateKey(XLookupKeysym(&event.xkey, 0));
  13.             break;
  14.             case ButtonPress:
  15.                 //mouse buttons in X are left (1) middle (2) right (3)
  16.                 if(event.xbutton.button == 1)
  17.                     ActivateMouseButton(true, false, event.xbutton.x, event.xbutton.y);
  18.                 else if(event.xbutton.button == 3)
  19.                     ActivateMouseButton(false, true, event.xbutton.x, event.xbutton.y);
  20.             break;
  21.             case ButtonRelease:
  22.                 if(event.xbutton.button == 1)
  23.                     DeactivateMouseButton(true, false, event.xbutton.x, event.xbutton.y);
  24.                 else if(event.xbutton.button == 3)
  25.                     DeactivateMouseButton(false, true, event.xbutton.x, event.xbutton.y);
  26.             break;
  27.  
  28.             // The reporting in *nix for the mouse happens in several different spaces
  29.             // In windows it happens globally. Therefore we have to adjust the mouse
  30.             // to a global coordinate frame for the mouse movement to work
  31.             case MotionNotify:
  32.                 MoveCursor(win.x + event.xmotion.x, win.y + event.xmotion.y);
  33.             break;
  34.             case ClientMessage:
  35.                 if (*XGetAtomName(win.display, event.xclient.message_type) == *"WM_PROTOCOLS")
  36.                 {
  37.                     quit_requested = true;
  38.                 }
  39.             break;
  40.         }
  41.     }
  42. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement