Esempio n. 1
0
        public void NavigateCheckerboardExitUp()
        {
            navigationWrap = GridNavigationWrap.None;

            SetLayout(
                "x x x ",
                " x x  ",
                "x x x ",
                " x x  ",
                "      ");

            UserInterfaceAction?parentNavigate = null;

            parent.Setup(x => x.OnChildAction(grid, It.IsAny <UserInterfaceActionEventArgs>()))
            .Callback <IRenderElement, UserInterfaceActionEventArgs>((_, args) =>
            {
                parentNavigate = args.Action;
            });

            grid.FocusPoint.Should().Be(Point.Zero);

            grid.MoveDown();
            grid.FocusPoint.Should().Be(new Point(0, 2));

            grid.MoveUp();
            grid.FocusPoint.Should().Be(new Point(0, 0));
            parentNavigate.Should().BeNull();

            grid.MoveUp();
            grid.FocusPoint.Should().Be(new Point(0, 0));
            parentNavigate.Should().Be(UserInterfaceAction.Up);
        }
Esempio n. 2
0
        public void SparseNavigateCheckerboard()
        {
            navigationWrap = GridNavigationWrap.Sparse;

            SetLayout(
                "x x x ",
                " x x  ",
                "x x x ",
                " x x  ",
                "      ");

            grid.FocusPoint.Should().Be(Point.Zero);

            grid.MoveRight();
            grid.FocusPoint.Should().Be(new Point(2, 0));

            grid.MoveDown();
            grid.FocusPoint.Should().Be(new Point(2, 2));

            grid.MoveRight();
            grid.FocusPoint.Should().Be(new Point(4, 2));

            grid.MoveUp();
            grid.FocusPoint.Should().Be(new Point(4, 0));

            grid.MoveRight();
            grid.FocusPoint.Should().Be(new Point(1, 1));
        }
Esempio n. 3
0
        public void DenseNavigate()
        {
            navigationWrap = GridNavigationWrap.Dense;

            SetLayout(
                "x xxx",
                " x xx",
                "x  xx",
                " x x ",
                " xxx ",
                "x   x");

            grid.FocusPoint.Should().Be(Point.Zero);

            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(2, 0));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(3, 0));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(4, 0));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(0, 0));
            grid.MoveLeft(); grid.FocusPoint.Should().Be(new Point(4, 0));

            grid.MoveDown(); grid.FocusPoint.Should().Be(new Point(4, 1));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(1, 1));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(3, 1));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(4, 1));

            grid.MoveDown(); grid.FocusPoint.Should().Be(new Point(4, 2));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(0, 2));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(3, 2));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(4, 2));

            grid.MoveDown(); grid.FocusPoint.Should().Be(new Point(4, 5));
            grid.MoveDown(); grid.FocusPoint.Should().Be(new Point(4, 0));
            grid.MoveUp(); grid.FocusPoint.Should().Be(new Point(4, 5));
            grid.MoveDown(); grid.FocusPoint.Should().Be(new Point(4, 0));
            grid.MoveLeft();
            grid.MoveDown();
            grid.MoveDown();
            grid.MoveDown(); grid.FocusPoint.Should().Be(new Point(3, 3));

            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(1, 3));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(3, 3));
            grid.MoveLeft(); grid.FocusPoint.Should().Be(new Point(1, 3));
            grid.MoveLeft(); grid.FocusPoint.Should().Be(new Point(3, 3));

            grid.MoveDown(); grid.FocusPoint.Should().Be(new Point(3, 4));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(1, 4));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(2, 4));
            grid.MoveRight(); grid.FocusPoint.Should().Be(new Point(3, 4));
        }
Esempio n. 4
0
        public void SparseNavigateUp()
        {
            navigationWrap = GridNavigationWrap.Sparse;

            SetLayout(
                "x x   ",
                " x    ",
                "   xx ",
                " x x  ",
                "      ");

            grid.FocusPoint.Should().Be(Point.Zero);

            grid.MoveUp(); grid.FocusPoint.Should().Be(new Point(4, 2));
            grid.MoveUp(); grid.FocusPoint.Should().Be(new Point(3, 3));
            grid.MoveUp(); grid.FocusPoint.Should().Be(new Point(3, 2));
            grid.MoveUp(); grid.FocusPoint.Should().Be(new Point(2, 0));
            grid.MoveUp(); grid.FocusPoint.Should().Be(new Point(1, 3));
            grid.MoveUp(); grid.FocusPoint.Should().Be(new Point(1, 1));
            grid.MoveUp(); grid.FocusPoint.Should().Be(Point.Zero);
        }
Esempio n. 5
0
        public void SparseNavigateLeft()
        {
            navigationWrap = GridNavigationWrap.Sparse;

            // TODO: Use non-square grid in all of these!!!!
            SetLayout(
                "x x   ",
                " x    ",
                "   xx ",
                " x x  ",
                "      ");

            grid.FocusPoint.Should().Be(Point.Zero);
            grid.MoveLeft(); grid.FocusPoint.Should().Be(new Point(3, 3));
            grid.MoveLeft(); grid.FocusPoint.Should().Be(new Point(1, 3));
            grid.MoveLeft(); grid.FocusPoint.Should().Be(new Point(4, 2));
            grid.MoveLeft(); grid.FocusPoint.Should().Be(new Point(3, 2));
            grid.MoveLeft(); grid.FocusPoint.Should().Be(new Point(1, 1));
            grid.MoveLeft(); grid.FocusPoint.Should().Be(new Point(2, 0));
            grid.MoveLeft(); grid.FocusPoint.Should().Be(Point.Zero);
        }