Exemplo n.º 1
0
void handle_event(SDL_Event event) {
  int key;
  if ( event.type == SDL_QUIT )
    done = 1;
  if ( event.type == SDL_KEYDOWN ) {
    key = event.key.keysym.sym;	
    if ( key == SDLK_ESCAPE || key == SDLK_q) done = 1;
    else if ( key == SDLK_UP)   ui_key_down('w');
    else if ( key == SDLK_DOWN) ui_key_down('s');
    else if ( key == SDLK_r)    starttime = (double) SDL_GetTicks() / 1000.0;
    else 
      ui_key_down(key);
  }
  if ( event.type == SDL_KEYUP ) {
    key = event.key.keysym.sym;			    	
    if ( key == SDLK_ESCAPE || key == SDLK_q) done = 1;
    else if ( key == SDLK_UP)   ui_key_up('w');
    else if ( key == SDLK_DOWN) ui_key_up('s');
    else
      ui_key_up(key);
  }
  if ( event.type == SDL_MOUSEMOTION ) {
    if (!warp)
      ui_mouse_relmotion(event.motion.xrel, event.motion.yrel);
    else
      warp=0;
    if ((event.motion.x < 10) || (event.motion.x > g->r_viewport_w-10) ||
        (event.motion.y < 10) || (event.motion.y > g->r_viewport_h-10)) {
      SDL_WarpMouse(g->r_viewport_w/2, g->r_viewport_h/2); /* center mouse */
      warp = 1;					     /* set flag */	
    }
  }
}
Exemplo n.º 2
0
static LRESULT
handle_WM_KEY(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  int scancode;
  int ext;
  int down;

  ext = HIWORD(lParam);
  scancode = ext;
  down = !(ext & 0x8000);
  scancode &= 0xff;
  if (scancode == 0)
  {
    scancode = get_scan_code_from_ascii(wParam);
  }
  ext &= 0x0100;
  if (scancode == 0x0045) /* num lock */
  {
    ext &= ~0x0100;
  }
  if (down)
  {
    ui_key_down(scancode, ext);
  }
  else
  {
    ui_key_up(scancode, ext);
  }
  return 0;
}
Exemplo n.º 3
0
//---------------------------------------------------------------------------
//  windowKeyboard
//---------------------------------------------------------------------------
void windowKeyboard( MPKWindow *w, MPKEvent *event )
{
    if ( event->keyboard.state == MPK_PRESS )
    {
        ui_key_down(event->keyboard.key);
        return;
    }

    ui_key_up(event->keyboard.key);

    switch (event->keyboard.key)
    {
        case XK_A:
        case XK_a:
            shared->stereo = !shared->stereo;
            break;
    }

}