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);
|
ProcessMouseEvent (event);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SDL_FINGERMOTION:
|
||||||
|
case SDL_FINGERDOWN:
|
||||||
|
case SDL_FINGERUP:
|
||||||
|
|
||||||
|
ProcessTouchEvent (event);
|
||||||
|
break;
|
||||||
|
|
||||||
case SDL_TEXTINPUT:
|
case SDL_TEXTINPUT:
|
||||||
case SDL_TEXTEDITING:
|
case SDL_TEXTEDITING:
|
||||||
|
|
||||||
@@ -388,7 +395,37 @@ namespace lime {
|
|||||||
|
|
||||||
void SDLApplication::ProcessTouchEvent (SDL_Event* event) {
|
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_x, alloc_float (event->x));
|
||||||
alloc_field (object, id_y, alloc_float (event->y));
|
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