SIGNAL_HANDLER int movie_subt_keypress(const char* widgetname, void *usrdata)
{
	GUI_Event *event = NULL;
	
	if(NULL == usrdata) return EVENT_TRANSFER_STOP;

	event = (GUI_Event *)usrdata;
	switch(event->key.sym)
	{
		case APPK_LEFT:
			key_leftright(event->key.sym);
			break;
		case APPK_RIGHT:
			key_leftright(event->key.sym);
			break;				

		case APPK_OK:
			key_ok();
			break;
			
		default:
			break;
	}

	
	return EVENT_TRANSFER_KEEPON;
}
SIGNAL_HANDLER int win_video_set_keypress(const char* widgetname, void *usrdata)
{
	GUI_Event *event = NULL;
	
	if(NULL == usrdata) return EVENT_TRANSFER_STOP;

	event = (GUI_Event *)usrdata;
	switch(event->key.sym)
	{
    	case KEY_EXIT:
    	case KEY_RECALL:
        case KEY_MENU:
            key_exit();
	     		GUI_EndDialog("win_video_set");
    		return EVENT_TRANSFER_STOP;
                        
		case APPK_LEFT:
		case APPK_RIGHT:
			key_lr(event->key.sym);
			break;				

		case APPK_OK:
			key_ok();
			break;

        			
		default:
			break;
	}

	
	return EVENT_TRANSFER_STOP;
}
Exemple #3
0
void Menu::HandleEvent(const SDL_Event& evnt)
{
  if (evnt.type == SDL_QUIT) {
#if defined MAEMO || defined __SYMBIAN32__
    AppWarmux::EmergencyExit();
#else
    key_cancel();
#endif
  } else if (evnt.type == SDL_KEYDOWN) {

    // Drop key events that are purely modifiers
    if (Keyboard::IsModifier(evnt.key.keysym.sym))
      return;

    // Allow widgets to interpret any key they want,
    // and do not reserve esc/return/delete/backspace
    bool used_by_widget = widgets.SendKey(evnt.key.keysym);

    if (!used_by_widget) {
      switch (evnt.key.keysym.sym) {
      case SDLK_ESCAPE:
        key_cancel();
        break;
      case SDLK_RETURN:
      case SDLK_KP_ENTER:
        key_ok();
        break;
      case SDLK_UP:
        key_up();
        break;
      case SDLK_DOWN:
        key_down();
        break;
      case SDLK_LEFT:
        key_left();
        break;
      case SDLK_RIGHT:
        key_right();
        break;
      case SDLK_TAB:
        key_tab();
        break;
      default:
        // should have been handle upper!
        break;
      }
    }
  } else if (evnt.type == SDL_MOUSEBUTTONUP) {
    Point2i mousePosition(evnt.button.x, evnt.button.y);

    if (!BasicOnClickUp(mousePosition)) {
      OnClickUp(mousePosition, evnt.button.button);
    }
  } else if (evnt.type == SDL_MOUSEBUTTONDOWN) {
    Point2i mousePosition(evnt.button.x, evnt.button.y);
    OnClick(mousePosition, evnt.button.button);
  }
}