void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state)
		{
			var panGesture = recgonizer as PanGestureRecognizer;
			Point translation = panGesture.GetTranslationInView (MainLayout);
			Point velocity = panGesture.GetVelocityInView (MainLayout);
			panGesture.SetTranslationInView (new Point (0, 0), MainLayout);


			Debug.WriteLine ("GESTURE STATE " + state + " trans " + translation);
			switch (panGesture.State) {
			case GestureRecognizerState.Began:
				break;
			case GestureRecognizerState.Changed:
				if (recgonizer.View == ForegroundContent) {
					_contentBounds.X += translation.X;
					_contentBounds.Y = 0;
					ForegroundContent.Layout (_contentBounds);
				}
				break;
			case GestureRecognizerState.Cancelled:
			case GestureRecognizerState.Ended:
			case GestureRecognizerState.Failed:
				_contentBounds.X = (_contentBounds.X > -(MainLayout.Width / 4)) ? 0 : -(MainLayout.Width / 2);
				ForegroundContent.LayoutTo (_contentBounds);
				break;
			case GestureRecognizerState.Possible:
			default:
				break;
			}
		}
 void OnAction(BaseGestureRecognizer recognizer, GestureRecognizerState state)
 {
     var panRecognizer = recognizer as PanGestureRecognizer;
     var view = recognizer.View;
     if (state == GestureRecognizerState.Began) {
         _startBounds = recognizer.View.Bounds;
         Debug.WriteLine ("START " + _startBounds);
     }
     if (state == GestureRecognizerState.Changed) {
         var message = "PAN " + recognizer + "\n";
         message += "POS: " + recognizer.LocationInView (view.ParentView);
         var translation = panRecognizer.GetTranslationInView (view.ParentView);
     //			message += "touches: " + recognizer.NumberOfTouches + ", velocity: " + velocity;
         message += ", translation: " + translation;
         var bounds = new Rectangle (view.X + translation.X, view.Y + translation.Y, view.Width, view.Height);
         message += ", vb: " + bounds;
         _startBounds.X += translation.X;
         _startBounds.Y += translation.Y;
         Debug.WriteLine ("MOVE " + bounds);
         Device.BeginInvokeOnMainThread (() => {
             Label2.Layout (bounds);
         });
         OutputLabel.Text = message;
     }
 }
 public void RemoveRecognizer(BaseGestureRecognizer recognizer)
 {
     NativeView.RemoveGestureRecognizer(NativeRecognizer);
     NativeRecognizer.ShouldRecognizeSimultaneously -= _NativeRecognizer_ShouldRecognizeSimultaneously;
     NativeRecognizer.ShouldBegin      -= _NativeRecognizer_ShouldBegin;
     NativeRecognizer                   = null;
     recognizer.NativeGestureRecognizer = null;
 }
Example #4
0
        private static void ProcessGestureRecognizer(this View view, BaseGestureRecognizer recognizer)
        {
            if (recognizer.NativeGestureRecognizer == null)
            {
                recognizer.View = view;

                Factory.AddNativeGestureRecognizerToRecgonizer(recognizer);
            }
        }
		private static void ProcessGestureRecognizer (this View view, BaseGestureRecognizer recognizer)
		{
			if (recognizer.NativeGestureRecognizer == null) {

				recognizer.View = view;

				Factory.AddNativeGestureRecognizerToRecgonizer (recognizer);
			}
		}
		void OnAction (BaseGestureRecognizer recognizer, GestureRecognizerState state)
		{
			var swipeRecognizer = recognizer as SwipeGestureRecognizer;
			var view = recognizer.View;
			var message = "SWIPE " + recognizer + "\n";
			message += "POS: " + recognizer.LocationInView (view.ParentView);
			message += "touches: " + recognizer.NumberOfTouches + ", direction: " + swipeRecognizer.Direction;
			OutputLabel.Text = message;
		}
		void OnAction (BaseGestureRecognizer recognizer, GestureRecognizerState state)
		{
			var tapRecognizer = recognizer as TwinTechs.Gestures.LongPressGestureRecognizer;
			var view = recognizer.View;
			var message = recognizer + "\n";
			message += "POS: " + recognizer.LocationInView (view);
			message += "PARENT POS: " + recognizer.LocationInView (view.ParentView);
			message += "touches: " + recognizer.NumberOfTouches;// + ", taps required: " + tapRecognizer.NumberOfTapsRequired;
			OutputLabel.Text = message;
		}
		void OnAction (BaseGestureRecognizer recognizer, GestureRecognizerState state)
		{
			var tapRecognizer = recognizer as TwinTechs.Gestures.TapGestureRecognizer;
			var view = recognizer.View;
			var message = string.Format ("POS: {0} \n", recognizer.LocationInView (view).PrettyPrint ());
			message += string.Format ("PARENT POS: {0} \n", recognizer.LocationInView (view.ParentView).PrettyPrint ());
			message += string.Format ("PARENT.PARENT POS: {0} \n", recognizer.LocationInView (view.ParentView.ParentView).PrettyPrint ());
			message += string.Format ("PAGE POS: {0} \n", recognizer.LocationInView (this).PrettyPrint ());
			OutputLabel.Text = message;
		}
 public void AddRecognizer(BaseGestureRecognizer recognizer)
 {
     Recognizer = recognizer;
     var renderer = Recognizer.View.GetRenderer ();
     if (renderer == null) {
         Recognizer.View.PropertyChanged += Recognizer_View_PropertyChanged;
     } else {
         InitializeNativeRecognizer ();
     }
 }
        private static void ProcessGestureRecognizer(this View view, BaseGestureRecognizer recognizer)
        {
            if (recognizer.NativeGestureRecognizer == null)
            {
                recognizer.View = view;

                var nativeRecongizer = Factory.CreateNativeGestureRecognizer(recognizer);
                nativeRecongizer.AddRecognizer(recognizer);
                recognizer.NativeGestureRecognizer = nativeRecongizer;
            }
        }
        private static void ProcessGestureRecognizer(this View view, BaseGestureRecognizer recognizer)
        {
            if (recognizer.NativeGestureRecognizer == null) {

                recognizer.View = view;

                var nativeRecongizer = Factory.CreateNativeGestureRecognizer (recognizer);
                nativeRecongizer.AddRecognizer (recognizer);
                recognizer.NativeGestureRecognizer = nativeRecongizer;
            }
        }
		void OnAction (BaseGestureRecognizer recognizer, GestureRecognizerState state)
		{
			var panRecognizer = recognizer as PanGestureRecognizer;
			var view = recognizer.View;
			var message = "PAN " + recognizer + "\n";
			message += "ParentPOS: " + recognizer.LocationInView (view.ParentView);
			message += "POS: " + recognizer.LocationInView (view);
			var translation = panRecognizer.GetTranslationInView (view.ParentView);
			var velocity = panRecognizer.GetVelocityInView (view.ParentView);
			message += ", translation: " + translation;
			var bounds = new Rectangle (view.X + velocity.X, view.Y + velocity.Y, view.Width, view.Height);
			message += ", vb: " + bounds;
			OutputLabel.Text = message;
		}
Example #13
0
        public void AddRecognizer(BaseGestureRecognizer recognizer)
        {
            Recognizer = recognizer;
            var renderer = Recognizer.View.GetRenderer();

            if (renderer == null)
            {
                Recognizer.View.PropertyChanged += Recognizer_View_PropertyChanged;
            }
            else
            {
                InitializeNativeRecognizer();
            }
        }
		void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state)
		{
			if (recgonizer.View != MediaItemsListView) {
				return;
			}
			var panGesture = recgonizer as PanGestureRecognizer;
			Point translation = panGesture.GetTranslationInView (MainLayout);
			Point velocity = panGesture.GetVelocityInView (MainLayout);
			panGesture.SetTranslationInView (new Point (0, 0), MainLayout);
			switch (panGesture.State) {
			case GestureRecognizerState.Began:
//				MediaItemsListView.IsEnabled = false;
				break;
			case GestureRecognizerState.Changed:
				var newY = _currentGridY + translation.Y;
				newY = Math.Max (0, newY);
				newY = Math.Min (400, newY);
				Debug.WriteLine ("newY {0} _currentGridY {1} _scrollPosition{2}", newY, _currentGridY, _scrollPosition);
				bool willMoveList = false;
				if (newY != _currentGridY) {
					willMoveList = _currentGridY > 0 || _scrollPosition <= 0 &&
					newY > 0 && newY < Height - 100;
					
					if (willMoveList) {
						_currentGridY = newY;
						var bounds = MediaItemsListView.Bounds;
						bounds.Y = _currentGridY;
						MediaItemsListView.Layout (bounds);
					}
					MediaItemsListView.IsScrollEnabled = !willMoveList;
				} else {
					MediaItemsListView.IsScrollEnabled = true;
					Debug.WriteLine ("no move " + MediaItemsListView.IsScrollEnabled);
				}
				break;
			case GestureRecognizerState.Cancelled:
			case GestureRecognizerState.Ended:
			case GestureRecognizerState.Failed:
				MediaItemsListView.IsScrollEnabled = true;
				if (_currentGridY != 0 && _currentGridY != 400) {
					_currentGridY = _currentGridY > 200 ? 400 : 0;
					MediaItemsListView.LayoutTo (new Rectangle (0, _currentGridY, Width, Height));
				}
				break;
			default:
				break;
			}
		}
Example #15
0
 public void RemoveRecognizer(BaseGestureRecognizer recognizer)
 {
     if (recognizer.NativeGestureRecognizer != null)
     {
         var coordinator = recognizer.NativeGestureCoordinator as NativeGestureCoordinator;
         if (coordinator == null)
         {
             throw new InvalidOperationException("the recognizer's native gesture coordinator is null, or an invalid type");
         }
         coordinator.RemoveRecognizer((BaseNativeGestureRecognizer)recognizer.NativeGestureRecognizer);
         if (!coordinator.HasRecognizers)
         {
             coordinator.Destroy();
             recognizer.NativeGestureCoordinator = null;
         }
     }
 }
Example #16
0
        public void RemoveRecognizer(BaseGestureRecognizer recognizer)
        {
            if (IsGestureInitialized)
            {
                Listener = GetMultiCastListener();
                if (Listener == null)
                {
                    throw new IllegalStateException("the view's multi caster was removed before removing a listener");
                }

                Listener.RemoveListener(this);
                if (!Listener.HasListeners)
                {
                    NativeView.SetOnTouchListener(null);
                }
                NativeView.SetOnTouchListener(null);
                NativeGestureDetector = null;
                IsGestureInitialized  = false;
            }
        }
		void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state)
		{
			string message = "";
			var panGesture = recgonizer as PanGestureRecognizer;
			Point translation = panGesture.GetTranslationInView (MainLayout);
			Point velocity = panGesture.GetVelocityInView (MainLayout);
			panGesture.SetTranslationInView (new Point (0, 0), MainLayout);

			//			MyLabel.Text = "PAN " + recognizer.LocationInView (view.ParentView);
			//			Debug.WriteLine ("PAN " + panGesture);
			//			Debug.WriteLine ("location " + panGesture.LocationInView (this));

			switch (panGesture.State) {
			case GestureRecognizerState.Began:
				message += "BEGAN ";
				message += "POS: " + recgonizer.LocationInView (MainLayout);
				break;
			case GestureRecognizerState.Changed:
				message += "CHANGED ";
				message += ", translation: " + translation;
				message += ", velocity: " + velocity;
				message += "POS: \n" + recgonizer.LocationInView (panGesture.View).PrettyPrint ();
				message += "PARENT POS: \n" + recgonizer.LocationInView (MainLayout).PrettyPrint ();
				if (recgonizer.View == Box) {
					message += ", MOVING VIEW";
					_boxBounds.X += translation.X;
					_boxBounds.Y += translation.Y;
					Box.Layout (_boxBounds);
				}
				break;
			case GestureRecognizerState.Cancelled:
			case GestureRecognizerState.Ended:
			case GestureRecognizerState.Failed:
				message += "FINISHED ";
				break;
			case GestureRecognizerState.Possible:
			default:
				break;
			}
			OutputLabel.Text = message;
		}
		void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state)
		{
			if (recgonizer.View != _contentPage.VideoPlayerView) {
				return;
			}
			var panGesture = recgonizer as PanGestureRecognizer;
			Point translation = panGesture.GetTranslationInView (MainLayout);
			Point velocity = panGesture.GetVelocityInView (MainLayout);
			panGesture.SetTranslationInView (new Point (0, 0), MainLayout);
			switch (panGesture.State) {
			case GestureRecognizerState.Began:
				break;
			case GestureRecognizerState.Changed:
				var newY = _contentBounds.Y + translation.Y;
				if (newY > 0 && newY < Height - _contentPage.MinimumHeightRequest) {
					var minHeight = _contentPage.MinimumHeightRequest;
					var minWidth = _contentPage.MinimumWidthRequest;
					_contentBounds.Y = newY;
					var complete = Math.Min (1, (Height - (_contentBounds.Y + minHeight)) / Height);
//					Debug.WriteLine ("complete {0} newY {1} h{2}", complete, newY, Height);
					var inverseCompletion = 1 - complete;
					_contentBounds.X = (Width - minWidth) * inverseCompletion;
					_contentBounds.Width = (minWidth) + ((Width - minWidth) * complete);
					_contentBounds.Height = Math.Max (minHeight, (Height + minHeight) * complete);
					PageContainer.Layout (_contentBounds);
				}
				break;
			case GestureRecognizerState.Cancelled:
			case GestureRecognizerState.Ended:
			case GestureRecognizerState.Failed:
				var isShowing = _contentBounds.Y < 200;
				ToggleShowing (isShowing, true);
				break;
			default:
				break;
			}
		}
		bool OnGestureShouldBegin (BaseGestureRecognizer gestureRecognizer)
		{
			var shouldBegin = _currentGridY > 0 || _scrollPosition < 10;
			Debug.WriteLine (">>>>>_currentGridY {0} _scrollPosition {1} shouldBegin{2}", _currentGridY, _scrollPosition, shouldBegin);
			return shouldBegin;
		}
 public void RemoveRecognizer(BaseGestureRecognizer recognizer)
 {
     NativeView.RemoveGestureRecognizer(NativeRecognizer);
     NativeRecognizer = null;
     recognizer.NativeGestureRecognizer = null;
 }
		bool OnShouldBegin (BaseGestureRecognizer recognizer)
		{
			var panGestureRecognizer = recognizer as PanGestureRecognizer;
			var translation = panGestureRecognizer.GetTranslationInView (recognizer.View.ParentView);
			var moveX = Math.Abs (translation.X);
			var moveY = Math.Abs (translation.Y);
			return moveX > moveY;
		}
        public void RemoveRecognizer(BaseGestureRecognizer recognizer)
        {
            if (IsGestureInitialized) {
                Listener = GetMultiCastListener ();
                if (Listener == null) {
                    throw new IllegalStateException ("the view's multi caster was removed before removing a listener");
                }

                Listener.RemoveListener (this);
                if (!Listener.HasListeners) {
                    NativeView.SetOnTouchListener (null);
                }
                NativeView.SetOnTouchListener (null);
                NativeGestureDetector = null;
                IsGestureInitialized = false;
            }
        }
        /// <summary>
        /// Removes the gesture recognizer. This is a temporary method while Xamarin don't expose any api
        /// for us to hook into their gesture recognizers mechanism.
        /// </summary>
        /// <param name="view">View.</param>
        /// <param name="recognizer">Recognizer.</param>
        public static void RemoveGestureRecognizer(this View view, BaseGestureRecognizer recognizer)
        {
//			recognizer.NativeGestureRecognizer?.RemoveRecognizer (recognizer);
        }
Example #24
0
        public void RemoveRecognizer(BaseGestureRecognizer recognizer)
        {
            var nativeRecognizer = recognizer.NativeGestureRecognizer as IBaseNativeGestureRecognizerImpl;

            nativeRecognizer.RemoveRecognizer(recognizer);
        }
		void Gesture_OnAction (BaseGestureRecognizer recgonizer, GestureRecognizerState state)
		{
			var panGesture = recgonizer as PanGestureRecognizer;
			Point translation = panGesture.GetTranslationInView (this);
			panGesture.SetTranslationInView (new Point (0, 0), this);

			//			MyLabel.Text = "PAN " + recognizer.LocationInView (view.ParentView);
//			Debug.WriteLine ("PAN " + panGesture);
//			Debug.WriteLine ("location " + panGesture.LocationInView (this));

			switch (panGesture.State) {
			case GestureRecognizerState.Began:
				break;
			case GestureRecognizerState.Changed:
				double newPosition = _contentView.X + translation.X;
				var endWidth = _contentWidth;
				Debug.WriteLine ("new pos " + newPosition + " endWidth " + endWidth);
				if (newPosition >= ((-endWidth) - (Width / 2)) && (newPosition <= (Width / 2))) {
					_contentView.Layout (GetBoundsWithX (newPosition));
				}
				break;
			case GestureRecognizerState.Cancelled:
			case GestureRecognizerState.Ended:
			case GestureRecognizerState.Failed:
				//scroll to page location, set index
				double currentPage = (-_contentView.X) / Width;
				Boolean isBehindHalfScreen = (currentPage - (int)currentPage) > 0.5;

				if (isBehindHalfScreen && (currentPage + 1) < NumberOfPages) {
					CurrentPageIndex = (int)(currentPage + 1);
				} else {
					CurrentPageIndex = (int)currentPage;
				}

				AnimateToPageIndex (CurrentPageIndex);
				break;
			case GestureRecognizerState.Possible:
			default:
				break;
			}
		}
 /// <summary>
 /// Removes the gesture recognizer. This is a temporary method while Xamarin don't expose any api
 /// for us to hook into their gesture recognizers mechanism.
 /// </summary>
 /// <param name="view">View.</param>
 /// <param name="recognizer">Recognizer.</param>
 public static void RemoveGestureRecognizer(this View view, BaseGestureRecognizer recognizer)
 {
     //			recognizer.NativeGestureRecognizer?.RemoveRecognizer (recognizer);
 }