Mercurial > sdl-ios-xcode
comparison src/events/SDL_keyboard.c @ 3685:64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 21 Jan 2010 06:21:52 +0000 |
parents | 98a819296cdc |
children | f7b03b6838cb |
comparison
equal
deleted
inserted
replaced
3684:cc564f08884f | 3685:64ce267332c6 |
---|---|
644 { | 644 { |
645 SDL_scancode_names[scancode] = name; | 645 SDL_scancode_names[scancode] = name; |
646 } | 646 } |
647 | 647 |
648 void | 648 void |
649 SDL_SetKeyboardFocus(int index, SDL_WindowID windowID) | 649 SDL_SetKeyboardFocus(int index, SDL_Window * window) |
650 { | 650 { |
651 SDL_Keyboard *keyboard = SDL_GetKeyboard(index); | 651 SDL_Keyboard *keyboard = SDL_GetKeyboard(index); |
652 int i; | 652 int i; |
653 SDL_bool focus; | 653 SDL_bool focus; |
654 | 654 |
655 if (!keyboard) { | 655 if (!keyboard) { |
656 return; | 656 return; |
657 } | 657 } |
658 | 658 |
659 /* See if the current window has lost focus */ | 659 /* See if the current window has lost focus */ |
660 if (keyboard->focus && keyboard->focus != windowID) { | 660 if (keyboard->focus && keyboard->focus != window) { |
661 focus = SDL_FALSE; | 661 focus = SDL_FALSE; |
662 for (i = 0; i < SDL_num_keyboards; ++i) { | 662 for (i = 0; i < SDL_num_keyboards; ++i) { |
663 if (i != index) { | 663 if (i != index) { |
664 SDL_Keyboard *check = SDL_GetKeyboard(i); | 664 SDL_Keyboard *check = SDL_GetKeyboard(i); |
665 if (check && check->focus == keyboard->focus) { | 665 if (check && check->focus == keyboard->focus) { |
672 SDL_SendWindowEvent(keyboard->focus, SDL_WINDOWEVENT_FOCUS_LOST, | 672 SDL_SendWindowEvent(keyboard->focus, SDL_WINDOWEVENT_FOCUS_LOST, |
673 0, 0); | 673 0, 0); |
674 } | 674 } |
675 } | 675 } |
676 | 676 |
677 keyboard->focus = windowID; | 677 keyboard->focus = window; |
678 | 678 |
679 if (keyboard->focus) { | 679 if (keyboard->focus) { |
680 SDL_SendWindowEvent(keyboard->focus, SDL_WINDOWEVENT_FOCUS_GAINED, | 680 SDL_SendWindowEvent(keyboard->focus, SDL_WINDOWEVENT_FOCUS_GAINED, |
681 0, 0); | 681 0, 0); |
682 } | 682 } |
807 event.key.state = state; | 807 event.key.state = state; |
808 event.key.keysym.scancode = scancode; | 808 event.key.keysym.scancode = scancode; |
809 event.key.keysym.sym = keyboard->keymap[scancode]; | 809 event.key.keysym.sym = keyboard->keymap[scancode]; |
810 event.key.keysym.mod = modstate; | 810 event.key.keysym.mod = modstate; |
811 event.key.keysym.unicode = 0; | 811 event.key.keysym.unicode = 0; |
812 event.key.windowID = keyboard->focus; | 812 event.key.windowID = keyboard->focus->id; |
813 posted = (SDL_PushEvent(&event) > 0); | 813 posted = (SDL_PushEvent(&event) > 0); |
814 } | 814 } |
815 return (posted); | 815 return (posted); |
816 } | 816 } |
817 | 817 |
830 if (SDL_ProcessEvents[SDL_TEXTINPUT] == SDL_ENABLE) { | 830 if (SDL_ProcessEvents[SDL_TEXTINPUT] == SDL_ENABLE) { |
831 SDL_Event event; | 831 SDL_Event event; |
832 event.text.type = SDL_TEXTINPUT; | 832 event.text.type = SDL_TEXTINPUT; |
833 event.text.which = (Uint8) index; | 833 event.text.which = (Uint8) index; |
834 SDL_strlcpy(event.text.text, text, SDL_arraysize(event.text.text)); | 834 SDL_strlcpy(event.text.text, text, SDL_arraysize(event.text.text)); |
835 event.text.windowID = keyboard->focus; | 835 event.text.windowID = keyboard->focus->id; |
836 posted = (SDL_PushEvent(&event) > 0); | 836 posted = (SDL_PushEvent(&event) > 0); |
837 } | 837 } |
838 return (posted); | 838 return (posted); |
839 } | 839 } |
840 | 840 |