From b48a7cad7ebb42d965785cda198d85d73aa47c36 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Sun, 7 Jun 2015 23:53:06 +0200 Subject: [PATCH 1/2] Implement touch support in SDLApplication --- project/src/backend/sdl/SDLApplication.cpp | 45 ++++++++++++++++++++-- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/project/src/backend/sdl/SDLApplication.cpp b/project/src/backend/sdl/SDLApplication.cpp index f2a1085c1..31b1a92bb 100644 --- a/project/src/backend/sdl/SDLApplication.cpp +++ b/project/src/backend/sdl/SDLApplication.cpp @@ -159,6 +159,13 @@ namespace lime { ProcessMouseEvent (event); break; + + case SDL_FINGERMOTION: + case SDL_FINGERDOWN: + case SDL_FINGERUP: + + ProcessTouchEvent (event); + break; case SDL_TEXTINPUT: case SDL_TEXTEDITING: @@ -387,9 +394,39 @@ namespace lime { void SDLApplication::ProcessTouchEvent (SDL_Event* event) { - - - + + if (TouchEvent::callback) { + + switch (event->type) { + case SDL_FINGERMOTION: + + touchEvent.type = TOUCH_MOVE; + touchEvent.x = event->tfinger.x; + touchEvent.y = event->tfinger.y; + touchEvent.id = event->tfinger.fingerId; + break; + + case SDL_FINGERDOWN: + + touchEvent.type = TOUCH_START; + touchEvent.x = event->tfinger.x; + touchEvent.y = event->tfinger.y; + touchEvent.id = event->tfinger.fingerId; + break; + + case SDL_FINGERUP: + + touchEvent.type = TOUCH_END; + touchEvent.x = event->tfinger.x; + touchEvent.y = event->tfinger.y; + touchEvent.id = event->tfinger.fingerId; + break; + } + + TouchEvent::Dispatch (&touchEvent); + + } + } @@ -588,4 +625,4 @@ namespace lime { #ifdef ANDROID int SDL_main (int argc, char *argv[]) { return 0; } -#endif \ No newline at end of file +#endif From 483af79db85de5ea4b4ebfd642823cf64c23ca5a Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 16 Jun 2015 23:29:35 +0200 Subject: [PATCH 2/2] Fix neko call for touch event --- project/src/ui/TouchEvent.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/project/src/ui/TouchEvent.cpp b/project/src/ui/TouchEvent.cpp index 40290167d..0533b1022 100644 --- a/project/src/ui/TouchEvent.cpp +++ b/project/src/ui/TouchEvent.cpp @@ -46,11 +46,11 @@ namespace lime { alloc_field (object, id_x, alloc_float (event->x)); alloc_field (object, id_y, alloc_float (event->y)); - val_call1 (TouchEvent::callback->get (), object); + val_call0 (TouchEvent::callback->get ()); } } -} \ No newline at end of file +}