diff options
author | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2013-02-27 20:36:14 -0500 |
---|---|---|
committer | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2013-02-27 20:36:14 -0500 |
commit | e1a0116a871bf96243472d79135eb624dc9c82c3 (patch) | |
tree | 7f14659e4855acc42e9752a73606efaed27ba382 /tests/sdl_text.c | |
parent | 42da4e19f9d72026be6642c8b54f646c6d828dde (diff) |
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; +} |