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; }
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); } }