Esempio n. 1
0
        /*public void SetupAsDropdown(float maxHeight) {
         *
         *      this.scrollRect.SetupAsDropdown(maxHeight);
         *
         * }*/

        public override bool IsNavigationControlSide(NavigationSide side)
        {
            if (this.scrollRect != null)
            {
                if (this.scrollRect.vertical == true || this.navigateVertical == true)
                {
                    if (side == NavigationSide.Down ||
                        side == NavigationSide.Up)
                    {
                        return(true);
                    }
                }

                if (this.scrollRect.horizontal == true || this.navigateHorizontal == true)
                {
                    if (side == NavigationSide.Left ||
                        side == NavigationSide.Right)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Esempio n. 2
0
        public override void OnNavigate(NavigationSide side)
        {
            base.OnNavigate(side);

            var slider     = this.GetSelectable() as Slider;
            var horizontal = (slider.direction == Slider.Direction.LeftToRight || slider.direction == Slider.Direction.RightToLeft);

            if (horizontal == true)
            {
                if (side == NavigationSide.Left)
                {
                    this.MovePrev();
                }
                if (side == NavigationSide.Right)
                {
                    this.MoveNext();
                }
            }
            else
            {
                if (side == NavigationSide.Up)
                {
                    this.MoveNext();
                }
                if (side == NavigationSide.Down)
                {
                    this.MovePrev();
                }
            }
        }
Esempio n. 3
0
        public override void OnNavigate(NavigationSide side)
        {
            base.OnNavigate(side);

            var slider     = this.GetSelectable() as Slider;
            var horizontal = (slider.direction == Slider.Direction.LeftToRight || slider.direction == Slider.Direction.RightToLeft);

            if (UnityEngine.UI.Windows.Constants.LOGS_ENABLED == true)
            {
                UnityEngine.Debug.Log("OnNavigate: " + side + " :: " + horizontal + " :: " + slider.direction);
            }
            if (horizontal == true)
            {
                if (side == NavigationSide.Left)
                {
                    this.MovePrev();
                }
                if (side == NavigationSide.Right)
                {
                    this.MoveNext();
                }
            }
            else
            {
                if (side == NavigationSide.Up)
                {
                    this.MoveNext();
                }
                if (side == NavigationSide.Down)
                {
                    this.MovePrev();
                }
            }
        }
Esempio n. 4
0
        public WindowComponentNavigation NavigationFind(NavigationSide side, bool interactableOnly = false)
        {
            WindowComponentNavigation result = null;

            switch (side)
            {
            case NavigationSide.Left:
                result = this.GetNavigation(interactableOnly, WindowComponentNavigation.GetNavigationLeft_INTERNAL);
                break;

            case NavigationSide.Right:
                result = this.GetNavigation(interactableOnly, WindowComponentNavigation.GetNavigationRight_INTERNAL);
                break;

            case NavigationSide.Up:
                result = this.GetNavigation(interactableOnly, WindowComponentNavigation.GetNavigationUp_INTERNAL);
                break;

            case NavigationSide.Down:
                result = this.GetNavigation(interactableOnly, WindowComponentNavigation.GetNavigationDown_INTERNAL);
                break;
            }

            return(result);
        }
        public bool NavigateSendEvents(WindowComponentNavigation source, NavigationSide side)
        {
            if (this.customContainer != null)
            {
                this.customContainer.NavigateSendEvents(this, side);

                if (this.customContainer.IsNavigationPreventChildEvents(side) == true)
                {
                    return(false);
                }
            }
            else
            {
                if (this.rootComponent != null && this.rootComponent is IWindowNavigation)
                {
                    var nav = (this.rootComponent as IWindowNavigation);
                    nav.NavigateSendEvents(this, side);

                    if (nav.IsNavigationPreventChildEvents(side) == true)
                    {
                        return(false);
                    }
                }
            }

            if (this.IsNavigationPreventEvents(side) == false)
            {
                if (this.IsNavigationControlSide(side) == true)
                {
                    this.OnNavigate(side);
                    this.OnNavigate(source, side);
                    this.NavigationScrollRect_INTERNAL(source, side);

                    switch (side)
                    {
                    case NavigationSide.Down:
                        this.OnNavigateDown();
                        break;

                    case NavigationSide.Up:
                        this.OnNavigateUp();
                        break;

                    case NavigationSide.Left:
                        this.OnNavigateLeft();
                        break;

                    case NavigationSide.Right:
                        this.OnNavigateRight();
                        break;
                    }
                }

                return(true);
            }

            return(false);
        }
        private void NavigationScrollRect_INTERNAL(WindowComponentNavigation source, NavigationSide side)
        {
            var scrollRect = this.NavigationScrollRect();

            if (scrollRect == null)
            {
                return;
            }

            var next = source.GetNavigation(side);

            if (next == null)
            {
                if (side == NavigationSide.Up)
                {
                    scrollRect.verticalNormalizedPosition = 1f;
                }
                else if (side == NavigationSide.Down)
                {
                    scrollRect.verticalNormalizedPosition = 0f;
                }
                else if (side == NavigationSide.Left)
                {
                    scrollRect.horizontalNormalizedPosition = 0f;
                }
                else if (side == NavigationSide.Right)
                {
                    scrollRect.horizontalNormalizedPosition = 1f;
                }
                return;
            }

            var containerRect = (scrollRect.transform as RectTransform).rect;
            var from          = RectTransformUtility.CalculateRelativeRectTransformBounds(this.GetRectTransform(), source.GetRectTransform());
            var to            = RectTransformUtility.CalculateRelativeRectTransformBounds(this.GetRectTransform(), next.GetRectTransform());
            var nextRect      = new Rect(to.center.XY(), to.size.XY());

            if (containerRect.Overlaps(nextRect) == true)
            {
                return;
            }

            var delta = (to.center - from.center).XY();

            if (side == NavigationSide.Left || side == NavigationSide.Right)
            {
                delta.y = 0f;
            }
            else
            {
                delta.x = 0f;
            }

            scrollRect.content.anchoredPosition    -= delta;
            scrollRect.horizontalNormalizedPosition = Mathf.Clamp01(scrollRect.horizontalNormalizedPosition);
            scrollRect.verticalNormalizedPosition   = Mathf.Clamp01(scrollRect.verticalNormalizedPosition);
        }
Esempio n. 7
0
        public override bool IsNavigationPreventEvents(NavigationSide side)
        {
            var inputField = this.inputField;

            if (inputField != null)
            {
                return(inputField.HasKeyboard());
            }

            return(base.IsNavigationPreventChildEvents(side));
        }
		public override bool IsNavigationPreventChildEvents(NavigationSide side) {
			/*
			if (this.axis == Axis.Horizontal) {

				if (side == NavigationSide.Left ||
					side == NavigationSide.Right) return true;

			} else  if (this.axis == Axis.Vertical) {

				if (side == NavigationSide.Up ||
					side == NavigationSide.Down) return true;
				
			}*/

			return false;

		}
        public override bool IsNavigationPreventChildEvents(NavigationSide side)
        {
            /*
             * if (this.axis == Axis.Horizontal) {
             *
             *      if (side == NavigationSide.Left ||
             *              side == NavigationSide.Right) return true;
             *
             * } else  if (this.axis == Axis.Vertical) {
             *
             *      if (side == NavigationSide.Up ||
             *              side == NavigationSide.Down) return true;
             *
             * }*/

            return(false);
        }
        public void SetNavigationInfo(NavigationSide side, NavigationSideInfo info)
        {
            switch (side)
            {
            case NavigationSide.Down:
                this.navigateDownInfo = info;
                break;

            case NavigationSide.Up:
                this.navigateUpInfo = info;
                break;

            case NavigationSide.Left:
                this.navigateLeftInfo = info;
                break;

            case NavigationSide.Right:
                this.navigateRightInfo = info;
                break;
            }
        }
Esempio n. 11
0
        public override void OnNavigate(WindowComponentNavigation source, NavigationSide side)
        {
            switch (side)
            {
            case NavigationSide.Up:
                this.ListMoveUp();
                break;

            case NavigationSide.Down:
                this.ListMoveDown();
                break;

            case NavigationSide.Right:
                this.ListMoveRight();
                break;

            case NavigationSide.Left:
                this.ListMoveLeft();
                break;
            }
        }
        public override bool IsNavigationControlledSide(NavigationSide side)
        {
            if (this.axis == Axis.Horizontal)
            {
                if (side == NavigationSide.Left ||
                    side == NavigationSide.Right)
                {
                    return(true);
                }
            }
            else if (this.axis == Axis.Vertical)
            {
                if (side == NavigationSide.Up ||
                    side == NavigationSide.Down)
                {
                    return(true);
                }
            }

            return(false);
        }
        public WindowComponentNavigation GetNavigation(NavigationSide side)
        {
            var dir      = Vector3.zero;
            var rotation = this.GetRectTransform().rotation;
            var sideInfo = new NavigationSideInfo();

            switch (side)
            {
            case NavigationSide.Left:
                dir      = rotation * Vector3.left;
                sideInfo = this.navigateLeftInfo;
                break;

            case NavigationSide.Right:
                dir      = rotation * Vector3.right;
                sideInfo = this.navigateRightInfo;
                break;

            case NavigationSide.Up:
                dir      = rotation * Vector3.up;
                sideInfo = this.navigateUpInfo;
                break;

            case NavigationSide.Down:
                dir      = rotation * Vector3.down;
                sideInfo = this.navigateDownInfo;
                break;
            }

            if (sideInfo.@explicit == true)
            {
                return(sideInfo.next);
            }

            return(this.GetNavigation(dir, sideInfo));
        }
Esempio n. 14
0
        public override bool IsNavigationControlledSide(NavigationSide side)
        {
            var slider     = this.GetSelectable() as Slider;
            var horizontal = (slider.direction == Slider.Direction.LeftToRight || slider.direction == Slider.Direction.RightToLeft);

            if (horizontal == true)
            {
                if (side == NavigationSide.Left ||
                    side == NavigationSide.Right)
                {
                    return(true);
                }
            }
            else
            {
                if (side == NavigationSide.Up ||
                    side == NavigationSide.Down)
                {
                    return(true);
                }
            }

            return(false);
        }
		public void SetNavigationInfo(NavigationSide side, NavigationSideInfo info) {

			switch (side) {

				case NavigationSide.Down:
					this.navigateDownInfo = info;
					break;

				case NavigationSide.Up:
					this.navigateUpInfo = info;
					break;

				case NavigationSide.Left:
					this.navigateLeftInfo = info;
					break;

				case NavigationSide.Right:
					this.navigateRightInfo = info;
					break;

			}

		}
		public virtual void OnNavigate(WindowComponentNavigation source, NavigationSide side) {}
 public virtual bool IsNavigationControlledSide(NavigationSide side)
 {
     return(false);
 }
		public bool NavigateSendEvents(WindowComponentNavigation source, NavigationSide side) {
			
			if (this.listContainer != null) {

				this.listContainer.NavigateSendEvents(this, side);

				if (this.listContainer.IsNavigationPreventChildEvents(side) == true) {

					return false;

				}

			} else {

				if (this.rootComponent != null && this.rootComponent is IWindowNavigation) {

					var nav = (this.rootComponent as IWindowNavigation);
					nav.NavigateSendEvents(this, side);

					if (nav.IsNavigationPreventChildEvents(side) == true) {

						return false;

					}

				}

			}

			if (this.IsNavigationControlledSide(side) == true) {

				this.OnNavigate(side);
				this.OnNavigate(source, side);

				switch (side) {

					case NavigationSide.Down:
						this.OnNavigateDown();
						break;

					case NavigationSide.Up:
						this.OnNavigateUp();
						break;

					case NavigationSide.Left:
						this.OnNavigateLeft();
						break;

					case NavigationSide.Right:
						this.OnNavigateRight();
						break;

				}

			}

			return true;

		}
		public virtual void OnNavigate(NavigationSide side) {}
		public virtual bool IsNavigationControlledSide(NavigationSide side) {

			return false;

		}
		public virtual bool IsNavigationPreventChildEvents(NavigationSide side) {

			return false;

		}
		public override void OnNavigate(NavigationSide side) {

			base.OnNavigate(side);

			var slider = this.GetSelectable() as Slider;
			var horizontal = (slider.direction == Slider.Direction.LeftToRight || slider.direction == Slider.Direction.RightToLeft);
			if (horizontal == true) {

				if (side == NavigationSide.Left) this.MovePrev();
				if (side == NavigationSide.Right) this.MoveNext();

			} else {

				if (side == NavigationSide.Up) this.MoveNext();
				if (side == NavigationSide.Down) this.MovePrev();

			}

		}
		public WindowComponentNavigation GetNavigation(NavigationSide side) {

			var dir = Vector3.zero;
			var rotation = this.GetRectTransform().rotation;
			NavigationSideInfo sideInfo = new NavigationSideInfo();
			switch (side) {

				case NavigationSide.Left:
					dir = rotation * Vector3.left;
					sideInfo = this.navigateLeftInfo;
					break;

				case NavigationSide.Right:
					dir = rotation * Vector3.right;
					sideInfo = this.navigateRightInfo;
					break;

				case NavigationSide.Up:
					dir = rotation * Vector3.up;
					sideInfo = this.navigateUpInfo;
					break;

				case NavigationSide.Down:
					dir = rotation * Vector3.down;
					sideInfo = this.navigateDownInfo;
					break;

			}

			if (sideInfo.@explicit == true) {
				
				return sideInfo.next;

			}

			return this.GetNavigation(dir, sideInfo);

		}
 public override void OnNavigate(WindowComponentNavigation source, NavigationSide side)
 {
 }
		public override bool IsNavigationControlledSide(NavigationSide side) {

			var slider = this.GetSelectable() as Slider;
			var horizontal = (slider.direction == Slider.Direction.LeftToRight || slider.direction == Slider.Direction.RightToLeft);
			if (horizontal == true) {

				if (side == NavigationSide.Left ||
				    side == NavigationSide.Right) {

					return true;

				}

			} else {

				if (side == NavigationSide.Up ||
					side == NavigationSide.Down) {

					return true;

				}

			}

			return false;

		}
 public virtual void OnNavigate(WindowComponentNavigation source, NavigationSide side)
 {
 }
		public override bool IsNavigationControlledSide(NavigationSide side) {

			if (this.axis == Axis.Horizontal) {

				if (side == NavigationSide.Left ||
					side == NavigationSide.Right) return true;
				
			} else  if (this.axis == Axis.Vertical) {

				if (side == NavigationSide.Up ||
					side == NavigationSide.Down) return true;
				
			}

			return false;

		}
 public virtual bool IsNavigationPreventEvents(NavigationSide side)
 {
     return(false);
 }
 public virtual void OnNavigate(NavigationSide side)
 {
 }
        public WindowComponentNavigation GetNavigation(NavigationSide side)
        {
            var dir      = Vector3.zero;
            var rotation = this.GetRectTransform().rotation;
            var sideInfo = new NavigationSideInfo();

            switch (side)
            {
            case NavigationSide.Left:
                dir      = rotation * Vector3.left;
                sideInfo = this.navigateLeftInfo;
                break;

            case NavigationSide.Right:
                dir      = rotation * Vector3.right;
                sideInfo = this.navigateRightInfo;
                break;

            case NavigationSide.Up:
                dir      = rotation * Vector3.up;
                sideInfo = this.navigateUpInfo;
                break;

            case NavigationSide.Down:
                dir      = rotation * Vector3.down;
                sideInfo = this.navigateDownInfo;
                break;
            }

            if (sideInfo.@explicit == true)
            {
                if (sideInfo.next != null)
                {
                    var selInteractable = sideInfo.next as IInteractableStateComponent;
                    if (selInteractable != null)
                    {
                        if (selInteractable.GetNavigationType() == NavigationType.None ||
                            (
                                selInteractable.IsNavigateOnDisabled() == false &&
                                selInteractable.IsVisible() == false
                            ) ||
                            (
                                selInteractable.IsNavigateOnDisabled() == false &&
                                selInteractable.IsInteractable() == false
                            ))
                        {
                            return(null);
                        }
                    }
                    else
                    {
                        if (sideInfo.next.GetNavigationType() == NavigationType.None ||
                            sideInfo.next.IsVisible() == false)
                        {
                            return(null);
                        }
                    }

                    return(sideInfo.next);
                }

                return(null);
            }

            return(this.GetNavigation(dir, sideInfo));
        }