Created
February 26, 2018 22:53
-
-
Save FyiurAmron/a3434d4d2f946f9f30a29dcd87bf834d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package vax.input; | |
import com.badlogic.gdx.input.GestureDetector.GestureListener; | |
import com.badlogic.gdx.math.Vector2; | |
/** | |
@author toor | |
@param <T> | |
*/ | |
public class GestureListenerProxy<T extends GestureListener> implements GestureListener { | |
private T gestureListener; | |
private boolean enabled = true, processed; | |
public GestureListenerProxy () { | |
} | |
public GestureListenerProxy ( T gestureListener ) { | |
this.gestureListener = gestureListener; | |
} | |
public T getGestureListener () { | |
return gestureListener; | |
} | |
public void setGestureListener ( T gestureListener ) { | |
this.gestureListener = gestureListener; | |
} | |
public boolean isEnabled () { | |
return enabled; | |
} | |
public void setEnabled ( boolean enabled ) { | |
this.enabled = enabled; | |
} | |
public boolean isProcessed () { | |
return processed; | |
} | |
public boolean getAndResetProcessedFlag () { | |
boolean b = processed; | |
processed = false; | |
return b; | |
} | |
public void resetProcessedFlag () { | |
processed = false; | |
} | |
private boolean process ( boolean result ) { | |
processed |= result; | |
return result; | |
} | |
private boolean isValid () { | |
return enabled && gestureListener != null; | |
} | |
@Override | |
public boolean touchDown ( float x, float y, int pointer, int button ) { | |
boolean result = isValid() ? gestureListener.touchDown( x, y, pointer, button ) : false; | |
return process( result ); | |
} | |
@Override | |
public boolean tap ( float x, float y, int count, int button ) { | |
boolean result = isValid() ? gestureListener.tap( x, y, count, button ) : false; | |
return process( result ); | |
} | |
@Override | |
public boolean longPress ( float x, float y ) { | |
boolean result = isValid() ? gestureListener.longPress( x, y ) : false; | |
return process( result ); | |
} | |
@Override | |
public boolean fling ( float velocityX, float velocityY, int button ) { | |
boolean result = isValid() ? gestureListener.fling( velocityX, velocityY, button ) : false; | |
return process( result ); | |
} | |
@Override | |
public boolean pan ( float x, float y, float deltaX, float deltaY ) { | |
boolean result = isValid() ? gestureListener.pan( x, y, deltaX, deltaY ) : false; | |
return process( result ); | |
} | |
@Override | |
public boolean panStop ( float x, float y, int pointer, int button ) { | |
boolean result = isValid() ? gestureListener.panStop( x, y, pointer, button ) : false; | |
return process( result ); | |
} | |
@Override | |
public boolean zoom ( float initialDistance, float distance ) { | |
boolean result = isValid() ? gestureListener.zoom( initialDistance, distance ) : false; | |
return process( result ); | |
} | |
@Override | |
public boolean pinch ( Vector2 initialPointer1, Vector2 initialPointer2, Vector2 pointer1, Vector2 pointer2 ) { | |
boolean result = isValid() ? gestureListener.pinch( initialPointer1, initialPointer2, pointer1, pointer2 ) : false; | |
return process( result ); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment