static void key(struct gui_input *in, SDL_Event *evt, gui_bool down) { const Uint8* state = SDL_GetKeyboardState(NULL); SDL_Keycode sym = evt->key.keysym.sym; if (sym == SDLK_RSHIFT || sym == SDLK_LSHIFT) gui_input_key(in, GUI_KEY_SHIFT, down); else if (sym == SDLK_DELETE) gui_input_key(in, GUI_KEY_DEL, down); else if (sym == SDLK_RETURN) gui_input_key(in, GUI_KEY_ENTER, down); else if (sym == SDLK_SPACE) gui_input_key(in, GUI_KEY_SPACE, down); else if (sym == SDLK_BACKSPACE) gui_input_key(in, GUI_KEY_BACKSPACE, down); else if (sym == SDLK_LEFT) gui_input_key(in, GUI_KEY_LEFT, down); else if (sym == SDLK_RIGHT) gui_input_key(in, GUI_KEY_RIGHT, down); else if (sym == SDLK_c) gui_input_key(in, GUI_KEY_COPY, down && state[SDL_SCANCODE_LCTRL]); else if (sym == SDLK_v) gui_input_key(in, GUI_KEY_PASTE, down && state[SDL_SCANCODE_LCTRL]); else if (sym == SDLK_x) gui_input_key(in, GUI_KEY_CUT, down && state[SDL_SCANCODE_LCTRL]); }
static void key(struct gui_input *in, SDL_Event *evt, gui_bool down) { SDL_Keycode sym = evt->key.keysym.sym; if (sym == SDLK_RSHIFT || sym == SDLK_LSHIFT) gui_input_key(in, GUI_KEY_SHIFT, down); else if (sym == SDLK_DELETE) gui_input_key(in, GUI_KEY_DEL, down); else if (sym == SDLK_RETURN) gui_input_key(in, GUI_KEY_ENTER, down); else if (sym == SDLK_SPACE) gui_input_key(in, GUI_KEY_SPACE, down); else if (sym == SDLK_BACKSPACE) gui_input_key(in, GUI_KEY_BACKSPACE, down); }
static void key(struct gui_input *in, MSG *msg, gui_bool down) { if (msg->lParam == VK_CONTROL) gui_input_key(in, GUI_KEY_CTRL, down); else if (msg->lParam == VK_SHIFT) gui_input_key(in, GUI_KEY_SHIFT, down); else if (msg->lParam == VK_DELETE) gui_input_key(in, GUI_KEY_DEL, down); else if (msg->lParam == VK_RETURN) gui_input_key(in, GUI_KEY_ENTER, down); else if (msg->lParam == VK_SPACE) gui_input_key(in, GUI_KEY_SPACE, down); else if (msg->lParam == VK_BACK) gui_input_key(in, GUI_KEY_BACKSPACE, down); }