private bool ConsumeDrags(GestureSamples gestureSamples)
 {
     bool dragsConsumed = false;
     List<GestureSample> freeDrags = gestureSamples.GetSamples (GestureType.FreeDrag);
     foreach (GestureSample freeDrag in freeDrags) {
         if (IsGestureWithinView (freeDrag)) {
             Position += freeDrag.Delta;
             dragsConsumed = true;
         }
     }
     return dragsConsumed;
 }
        private bool ConsumePinches(GestureSamples gestureSamples)
        {
            Vector2 initialPosition = Position;
            bool pinchesConsumed = false;
            List<GestureSample> pinches = gestureSamples.GetSamples (GestureType.Pinch);
            foreach (GestureSample pinch in pinches) {
                if (IsGestureWithinView (pinch)) {
                    float scaleFactor = GetPinchScaleFactor (pinch);
                    Scale *= scaleFactor;
                    Position = GetPinchScaledPosition (this, pinch, scaleFactor);
                    ScaleAndRepositionChildViews (pinch, scaleFactor);
                    pinchesConsumed = true;
                }
            }

            return pinchesConsumed;
        }
Exemple #3
0
        public virtual bool ConsumeGestures(GestureSamples gestureSamples)
        {
            bool gestureConsumed = false;

            if (IsTapEnabled) {
                List<GestureSample> taps = gestureSamples.GetSamples (GestureType.Tap);
                foreach (GestureSample tap in taps) {
                    if (IsGestureWithinView (tap)) {
                        OnTap (this);
                        gestureConsumed = true;
                        break;
                    }
                }
            }

            if (IsDoubleTapEnabled && ! gestureConsumed) {
                List<GestureSample> doubleTaps = gestureSamples.GetSamples (GestureType.DoubleTap);
                foreach (GestureSample doubleTap in doubleTaps) {
                    if (IsGestureWithinView (doubleTap)) {
                        OnDoubleTap (this);
                        gestureConsumed = true;
                        break;
                    }
                }
            }

            if (IsHoldEnabled && ! gestureConsumed) {
                List<GestureSample> holds = gestureSamples.GetSamples (GestureType.Hold);
                foreach (GestureSample hold in holds) {
                    if (IsGestureWithinView (hold)) {
                        OnHold (this);
                        gestureConsumed = true;
                        break;
                    }
                }
            }

            return gestureConsumed;
        }
 public override bool ConsumeGestures(GestureSamples gestureSamples)
 {
     return ConsumeDrags (gestureSamples) || ConsumePinches (gestureSamples);
 }
Exemple #5
0
 public override bool ConsumeGestures(GestureSamples gestureSamples)
 {
     // Overlays consume all gestures so that they don't pass through to lower layers
     return true;
 }
Exemple #6
0
 public ScreenLayers()
 {
     Gestures = new GestureSamples ();
     Clear ();
 }
Exemple #7
0
 internal bool ConsumeGestures(GestureSamples gestureSamples)
 {
     // Iterate through the view layers, starting at the top
     for (int layer = Layers.Length-1; layer >= 0; layer--) {
         List<View> viewLayer = Layers [layer];
         foreach (View view in viewLayer) {
             if (view.Visible && view.ConsumeGestures (gestureSamples)) {
                 return true;
             }
         }
     }
     return false;
 }