aboutsummaryrefslogtreecommitdiff
path: root/tests/sdl_text.c
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-02-27 17:45:28 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-02-27 17:45:28 -0800
commit39b83371978547efec65d431cb530f825061bb1d (patch)
tree8847d7a1a052de8e8416a9f37f2b7cfdac8e258f /tests/sdl_text.c
parent06822b1ea412d62606bba0c6d3211a576a633c56 (diff)
parente1a0116a871bf96243472d79135eb624dc9c82c3 (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.c40
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;
+}