コード例 #1
0
ファイル: menu.cpp プロジェクト: Arnaud474/Warmux
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);
  }
}
コード例 #2
0
//-----------------------------------------------------------------
WorldInput::WorldInput(WorldMap *world)
    : GameInput(world)
{
    //TODO: 'O' ... options, 'I' ... intro, 'E' ... exit, 'C' ... credits
    KeyDesc key_tab(KEY_TAB, "select next level");
    KeyDesc key_enter(KEY_ENTER, "run selected");

    /* FFNG no shortcuts for android
       TODO replace these keys by buttons or menu
    m_keymap->registerKey(KeyStroke(SDLK_TAB, KMOD_NONE), key_tab);
    m_keymap->registerKey(KeyStroke(SDLK_RETURN, KMOD_NONE), key_enter);
    */
}