MCPcopy Create free account
hub / github.com/Kitware/VTK / HandleInput

Method HandleInput

Rendering/UI/vtkAndroidRenderWindowInteractor.cxx:459–506  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

457}
458
459int32_t vtkAndroidRenderWindowInteractor::HandleInput(AInputEvent* event)
460{
461 if (!this->Enabled)
462 {
463 return 0;
464 }
465
466 switch (AInputEvent_getType(event))
467 {
468 case AINPUT_EVENT_TYPE_MOTION:
469 {
470 int action = AMotionEvent_getAction(event);
471 int metaState = AMotionEvent_getMetaState(event);
472 int numPtrs = AMotionEvent_getPointerCount(event);
473 int eventPointer = action >> AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT;
474 action = action & AMOTION_EVENT_ACTION_MASK;
475
476 int* xPtr = (int*)malloc(numPtrs * sizeof(int));
477 int* yPtr = (int*)malloc(numPtrs * sizeof(int));
478 int* idPtr = (int*)malloc(numPtrs * sizeof(int));
479 for (int i = 0; i < numPtrs; ++i)
480 {
481 idPtr[i] = AMotionEvent_getPointerId(event, i);
482 xPtr[i] = AMotionEvent_getX(event, i);
483 yPtr[i] = AMotionEvent_getY(event, i);
484 }
485 int actionId = AMotionEvent_getPointerId(event, eventPointer);
486 this->HandleMotionEvent(action, actionId, numPtrs, xPtr, yPtr, idPtr, metaState);
487 free(xPtr);
488 free(yPtr);
489 free(idPtr);
490 return 1;
491 }
492 break;
493 case AINPUT_EVENT_TYPE_KEY:
494 {
495 int action = AKeyEvent_getAction(event);
496 int nChar = AKeyEvent_getKeyCode(event);
497 int metaState = AKeyEvent_getMetaState(event);
498 int nRepCnt = AKeyEvent_getRepeatCount(event);
499 this->HandleKeyEvent(action == AKEY_EVENT_ACTION_DOWN, nChar, metaState, nRepCnt);
500 return 1;
501 }
502 break;
503 } // end switch event type motion versus key
504
505 return 0;
506}
507
508//------------------------------------------------------------------------------
509void vtkAndroidRenderWindowInteractor::Initialize()

Callers 1

android_handle_inputFunction · 0.80

Calls 2

HandleMotionEventMethod · 0.95
HandleKeyEventMethod · 0.95

Tested by

no test coverage detected