Merge pull request #470 from PVince81/sdlmultitouch-nonlegacy
Implement touch support in SDLApplication
This commit is contained in:
@@ -160,6 +160,13 @@ namespace lime {
|
||||
ProcessMouseEvent (event);
|
||||
break;
|
||||
|
||||
case SDL_FINGERMOTION:
|
||||
case SDL_FINGERDOWN:
|
||||
case SDL_FINGERUP:
|
||||
|
||||
ProcessTouchEvent (event);
|
||||
break;
|
||||
|
||||
case SDL_TEXTINPUT:
|
||||
case SDL_TEXTEDITING:
|
||||
|
||||
@@ -388,7 +395,37 @@ 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);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ 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 ());
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user