diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-02-27 17:45:28 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-02-27 17:45:28 -0800 |
commit | 39b83371978547efec65d431cb530f825061bb1d (patch) | |
tree | 8847d7a1a052de8e8416a9f37f2b7cfdac8e258f /tests/sdl_text.c | |
parent | 06822b1ea412d62606bba0c6d3211a576a633c56 (diff) | |
parent | e1a0116a871bf96243472d79135eb624dc9c82c3 (diff) |
Merge pull request #889 from ehsan/sdl_textinput
Implement SDL_TEXTINPUT
Diffstat (limited to 'tests/sdl_text.c')
-rw-r--r-- | tests/sdl_text.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/sdl_text.c b/tests/sdl_text.c new file mode 100644 index 00000000..6bcb0d61 --- /dev/null +++ b/tests/sdl_text.c @@ -0,0 +1,40 @@ +#include <SDL/SDL.h> +#include <stdio.h> +#include <string.h> +#include <assert.h> +#include <emscripten.h> + +int result = 0; + +void one() { + SDL_Event event; + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_TEXTEDITING: assert(0); break; + case SDL_TEXTINPUT: + printf("Received %s\n", event.text.text); + if (!strcmp("a", event.text.text)) { + result = 1; + } else if (!strcmp("A", event.text.text)) { + REPORT_RESULT(); + emscripten_run_script("throw 'done'"); + } + break; + default: /* Report an unhandled event */ + printf("I don't know what this event is!\n"); + } + } +} + +int main() { + SDL_Init(SDL_INIT_VIDEO); + SDL_SetVideoMode(600, 450, 32, SDL_HWSURFACE); + SDL_StartTextInput(); + + emscripten_run_script("simulateKeyEvent('a'.charCodeAt(0))"); // a + emscripten_run_script("simulateKeyEvent('A'.charCodeAt(0))"); // A + + one(); + + return 0; +} |