/*
* @author Valentin Simonov / http://va.lent.in/
*/
using TouchScript.Gestures;
using TouchScript.Pointers;
namespace TouchScript
{
///
/// A delegate which can be set to and control what this gesture can or can not do.
/// This is a way to control very precisely how affected gestures work without inheriting from them and overriding their behavior.
///
///
public interface IGestureDelegate
{
///
/// Returns whether a gesture should receive a pointer.
///
/// The gesture.
/// The pointer.
/// true if it should; false otherwise.
/// Can be used to restrict what pointers a gesture can receive and ignore the ones it shouldn't.
bool ShouldReceivePointer(Gesture gesture, Pointer pointer);
///
/// Returns whether a gesture can now begin.
///
/// The gesture.
/// true if it can; false otherwise.
/// Can be used to stop a ready to begin gesture.
bool ShouldBegin(Gesture gesture);
///
/// Returns whether two gestures can be recognized simultaneously or not.
///
/// The first gesture.
/// The second gesture.
/// true if they should work together; false otherwise.
/// Can be used to restrict simultaneous gesture recognition.
bool ShouldRecognizeSimultaneously(Gesture first, Gesture second);
}
}