newX = (int) (iosInput.invertX(event.getX())); newDX = (int)event.getDeltaX() * -1; } else { newX = (int) event.getX(); newDX = (int)event.getDeltaX(); newY = (int) (iosInput.invertY(event.getY())); newDY = (int)event.getDeltaY() * -1; } else { newY = (int) event.getY(); newDY = (int)event.getDeltaY(); switch (event.getType()) { case DOWN: inputEvent.setTime(event.getTime()); break; inputEvent.setTime(event.getTime()); break; inputEvent = new MouseMotionEvent(newX, newY, newDX, newDY, (int)event.getScaleSpan(), (int)event.getDeltaScaleSpan()); inputEvent.setTime(event.getTime()); break;
public void actionUp(int pointerId, long time, float x, float y) { float jmeX = iosInput.getJmeX(x); float jmeY = iosInput.invertY(iosInput.getJmeY(y)); TouchEvent touch = iosInput.getFreeTouchEvent(); touch.set(TouchEvent.Type.UP, jmeX, jmeY, 0, 0); touch.setPointerId(pointerId);//TODO: pointer ID touch.setTime(time); touch.setPressure(1.0f); //touch.setPressure(event.getPressure(pointerIndex)); //TODO: preassure lastPositions.remove(pointerId); processEvent(touch); }
public void initialize() { TouchEvent newEvent; while (!eventPool.isEmpty()) { eventPool.pop(); } for (int i = 0; i < maxEvents; i++) { newEvent = new TouchEvent(); newEvent.setConsumed(); eventPool.push(newEvent); } }
private void onTouchEventQueued(TouchEvent evt, NiftyInputConsumer nic) { if (inputManager.isSimulateMouse()) { return; } x = (int) evt.getX(); y = (int) (height - evt.getY()); // Input manager will not convert touch events to mouse events, // thus we must do it ourselves.. switch (evt.getType()) { case DOWN: if (inputPointerId != -1) { // Another touch was done by the user // while the other interacts with nifty, ignore. break; } inputPointerId = evt.getPointerId(); handleMouseEvent(0, true, nic, evt); break; case UP: if (inputPointerId != evt.getPointerId()) { // Another touch was done by the user // while the other interacts with nifty, ignore. break; } inputPointerId = -1; handleMouseEvent(0, false, nic, evt); break; } }
@Override public boolean onScaleBegin(ScaleGestureDetector scaleGestureDetector) { // Scale uses a focusX and focusY instead of x and y. Focus is the middle // of the fingers. Therefore, use the x and y values from the Down event // so that the x and y values don't jump to the middle position. // return true or all gestures for this beginning event will be discarded // logger.log(Level.INFO, "onScaleBegin"); scaleStartX = gestureDownX; scaleStartY = gestureDownY; TouchEvent touchEvent = touchInput.getFreeTouchEvent(); touchEvent.set(TouchEvent.Type.SCALE_START, scaleStartX, scaleStartY, 0f, 0f); touchEvent.setPointerId(0); touchEvent.setTime(scaleGestureDetector.getEventTime()); touchEvent.setScaleSpan(scaleGestureDetector.getCurrentSpan()); touchEvent.setDeltaScaleSpan(0f); touchEvent.setScaleFactor(scaleGestureDetector.getScaleFactor()); touchEvent.setScaleSpanInProgress(touchInput.getScaleDetector().isInProgress()); touchInput.addEvent(touchEvent); return true; }
@Override public void onTouchEvent(TouchEvent evt) { // NOT TESTED AT ALL, just for shit & giggles, may work which would be super cool if (!evt.isScaleSpanInProgress()) { if (currentControl != null) { evt.setConsumed(); // Select level mainMenuState.selectCampaignLevel(currentControl); } else if (currentControl == null) { evt.setConsumed(); // Treat this like "on hover" setCampaignMapActive((int) evt.getX(), (int) evt.getY()); } } }
evt = new TouchEvent(); evt.set(TouchEvent.Type.KEY_DOWN); evt.setKeyCode(event.getKeyCode()); evt.setCharacters(event.getCharacters()); evt.setTime(event.getEventTime()); evt = new TouchEvent(); evt.set(TouchEvent.Type.KEY_UP); evt.setKeyCode(event.getKeyCode()); evt.setCharacters(event.getCharacters()); evt.setTime(event.getEventTime());
public void set(Type type) { set(type, 0f, 0f, 0f, 0f); }
/** * Gets called by the InputManager on all touch/drag/scale events */ @Override public void onTouch(String name, TouchEvent evt, float tpf) { if (name.equals(ESCAPE_EVENT)) { switch (evt.getType()) { case KEY_UP: runOnUiThread(new Runnable() { @Override public void run() { AlertDialog dialog = new AlertDialog.Builder(AndroidHarness.this) // .setIcon(R.drawable.alert_dialog_icon) .setTitle(exitDialogTitle).setPositiveButton("Yes", AndroidHarness.this).setNegativeButton("No", AndroidHarness.this).setMessage(exitDialogMessage).create(); dialog.show(); } }); break; default: break; } } }
/** * Fetches a touch event from the reuse pool * * @return a usable TouchEvent */ public TouchEvent getNextFreeEvent() { TouchEvent evt = null; int curSize = eventPool.size(); while (curSize > 0) { evt = (TouchEvent)eventPool.pop(); if (evt.isConsumed()) { break; } else { eventPool.push(evt); evt = null; } curSize--; } if (evt == null) { logger.warning("eventPool full of unconsumed events"); evt = new TouchEvent(); } return evt; }
/** * Dispatches touch events to touch listeners * @param evt The touch event to be dispatched to all onTouch listeners */ public void onTouchEventQueued(TouchEvent evt) { ArrayList<Mapping> maps = bindings.get(TouchTrigger.touchHash(evt.getKeyCode())); if (maps == null) { return; } int size = maps.size(); for (int i = size - 1; i >= 0; i--) { Mapping mapping = maps.get(i); ArrayList<InputListener> listeners = mapping.listeners; int listenerSize = listeners.size(); for (int j = listenerSize - 1; j >= 0; j--) { InputListener listener = listeners.get(j); if (listener instanceof TouchListener) { ((TouchListener) listener).onTouch(mapping.name, evt, frameTPF); } } } }
switch (te.getType()) { case DOWN: pointerData = getPointerData( te.getPointerId(), (int)te.getX(), (int)te.getY()); if (dispatchButton(pointerData, true)) { te.setConsumed(); pointerData = pointerDataMap.get(te.getPointerId()); if (pointerData != null) { pointerData.lastX = (int)te.getX(); pointerData.lastY = (int)te.getY(); pointerData = pointerDataMap.get(te.getPointerId()); if (pointerData != null) { pointerData.lastX = (int)te.getX(); pointerData.lastY = (int)te.getY(); if (dispatchButton(pointerData, false)) { te.setConsumed(); pointerDataMap.remove(te.getPointerId());
@Override public void onScaleEnd(ScaleGestureDetector scaleGestureDetector) { // logger.log(Level.INFO, "onScaleEnd"); scaleStartX = gestureDownX; scaleStartY = gestureDownY; TouchEvent touchEvent = touchInput.getFreeTouchEvent(); touchEvent.set(TouchEvent.Type.SCALE_END, scaleStartX, scaleStartY, 0f, 0f); touchEvent.setPointerId(0); touchEvent.setTime(scaleGestureDetector.getEventTime()); touchEvent.setScaleSpan(scaleGestureDetector.getCurrentSpan()); touchEvent.setDeltaScaleSpan(scaleGestureDetector.getCurrentSpan() - scaleGestureDetector.getPreviousSpan()); touchEvent.setScaleFactor(scaleGestureDetector.getScaleFactor()); touchEvent.setScaleSpanInProgress(touchInput.getScaleDetector().isInProgress()); touchInput.addEvent(touchEvent); } }
public TouchEvent() { set(Type.IDLE, 0f, 0f, 0f, 0f); }
/** * Gets called by the InputManager on all touch/drag/scale events */ @Override public void onTouch(String name, TouchEvent evt, float tpf) { if (name.equals(ESCAPE_EVENT)) { switch (evt.getType()) { case KEY_UP: getActivity().runOnUiThread(new Runnable() { @Override public void run() { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(exitDialogTitle); builder.setPositiveButton("Yes", AndroidHarnessFragment.this); builder.setNegativeButton("No", AndroidHarnessFragment.this); builder.setMessage(exitDialogMessage); AlertDialog dialog = builder.create(); dialog.show(); } }); break; default: break; } } }
/** * Fetches a touch event from the reuse pool * * @return a usable TouchEvent */ public TouchEvent getNextFreeEvent() { TouchEvent evt = null; int curSize = eventPool.size(); while (curSize > 0) { evt = (TouchEvent)eventPool.pop(); if (evt.isConsumed()) { break; } else { eventPool.push(evt); evt = null; } curSize--; } if (evt == null) { logger.warning("eventPool full of unconsumed events"); evt = new TouchEvent(); } return evt; }
/** * Dispatches touch events to touch listeners * @param evt The touch event to be dispatched to all onTouch listeners */ public void onTouchEventQueued(TouchEvent evt) { ArrayList<Mapping> maps = bindings.get(TouchTrigger.touchHash(evt.getKeyCode())); if (maps == null) { return; } int size = maps.size(); for (int i = size - 1; i >= 0; i--) { Mapping mapping = maps.get(i); ArrayList<InputListener> listeners = mapping.listeners; int listenerSize = listeners.size(); for (int j = listenerSize - 1; j >= 0; j--) { InputListener listener = listeners.get(j); if (listener instanceof TouchListener) { ((TouchListener) listener).onTouch(mapping.name, evt, frameTPF); } } } }
newX = (int) (invertX(event.getX())); newDX = (int)event.getDeltaX() * -1; } else { newX = (int) event.getX(); newDX = (int)event.getDeltaX(); newY = (int) (invertY(event.getY())); newDY = (int)event.getDeltaY() * -1; } else { newY = (int) event.getY(); newDY = (int)event.getDeltaY(); switch (event.getType()) { case DOWN: inputEvent.setTime(event.getTime()); break; inputEvent.setTime(event.getTime()); break; inputEvent = new MouseMotionEvent(newX, newY, newDX, newDY, (int)event.getScaleSpan(), (int)event.getDeltaScaleSpan()); inputEvent.setTime(event.getTime()); break;