void basic_handler::handle_event(const SDL_Event& event) { //TODO this code path is never called? if (disp_ == NULL) { return; } switch (event.type) { case SDL_KEYDOWN: // If we're in a dialog we only want to handle items that are explicitly // handled by the executor. // If we're not in a dialog we can call the regular key event handler. if (!gui::in_dialog()) { key_event(*disp_, event.key,exec_); } else if (exec_ != NULL) { key_event_execute(*disp_, event.key,exec_); } break; case SDL_JOYBUTTONDOWN: if (!gui::in_dialog()) { jbutton_event(*disp_, event.jbutton,exec_); } else if (exec_ != NULL) { jbutton_event_execute(*disp_, event.jbutton,exec_); } break; case SDL_MOUSEBUTTONDOWN: if (!gui::in_dialog()) { mbutton_event(*disp_, event.button,exec_); } else if (exec_ != NULL) { mbutton_event_execute(*disp_, event.button,exec_); } break; } }
void basic_handler::handle_event(const SDL_Event& event) { if(event.type == SDL_KEYDOWN && disp_ != NULL) { //if we're in a dialog we only want to handle things that are explicitly handled //by the executor. If we're not in a dialog we can call the regular key event handler if(!gui::in_dialog()) { key_event(*disp_,event.key,exec_); } else if(exec_ != NULL) { key_event_execute(*disp_,event.key,exec_); } } }
void key_event(display& disp, const SDL_KeyboardEvent& event, command_executor* executor) { if(event.keysym.sym == SDLK_ESCAPE && disp.in_game()) { LOG_G << "escape pressed..showing quit\n"; const int res = gui2::show_message(disp.video(), _("Quit"), _("Do you really want to quit?"), gui2::tmessage::yes_no_buttons); if(res != gui2::twindow::CANCEL) { throw end_level_exception(QUIT); } else { return; } } key_event_execute(disp,event,executor); }
void key_event(display& disp, const SDL_KeyboardEvent& event, command_executor* executor) { if(event.keysym.sym == SDLK_ESCAPE && disp.in_game()) { LOG_G << "escape pressed..showing quit\n"; const int res = gui::dialog(disp,_("Quit"),_("Do you really want to quit?"),gui::YES_NO).show(); if(res == 0) { throw end_level_exception(QUIT); } else { return; } } key_event_execute(disp,event,executor); }