Esempio n. 1
0
        public TestCaseScreenBreadcrumbControl()
        {
            TestScreen    startScreen;
            OsuSpriteText titleText;

            Children = new Drawable[]
            {
                currentScreen = startScreen = new TestScreenOne(),
                new FillFlowContainer
                {
                    RelativeSizeAxes = Axes.X,
                    AutoSizeAxes     = Axes.Y,
                    Direction        = FillDirection.Vertical,
                    Spacing          = new Vector2(10),
                    Children         = new Drawable[]
                    {
                        breadcrumbs = new ScreenBreadcrumbControl(startScreen)
                        {
                            RelativeSizeAxes = Axes.X,
                        },
                        titleText = new OsuSpriteText(),
                    },
                },
            };

            breadcrumbs.Current.ValueChanged += s =>
            {
                titleText.Text = $"Changed to {s.ToString()}";
                changedScreen  = s;
            };

            breadcrumbs.Current.TriggerChange();

            waitForCurrent();
            pushNext();
            waitForCurrent();
            pushNext();
            waitForCurrent();

            AddStep(@"make start current", () =>
            {
                startScreen.MakeCurrent();
                currentScreen = startScreen;
            });

            waitForCurrent();
            pushNext();
            waitForCurrent();
            AddAssert(@"only 2 items", () => breadcrumbs.Items.Count() == 2);
            AddStep(@"exit current", () => changedScreen.Exit());
            AddAssert(@"current screen is first", () => startScreen == changedScreen);
        }
Esempio n. 2
0
        public TestSceneScreenBreadcrumbControl()
        {
            OsuSpriteText titleText;

            IScreen startScreen = new TestScreenOne();

            screenStack = new OsuScreenStack {
                RelativeSizeAxes = Axes.Both
            };
            screenStack.Push(startScreen);

            Children = new Drawable[]
            {
                screenStack,
                new FillFlowContainer
                {
                    RelativeSizeAxes = Axes.X,
                    AutoSizeAxes     = Axes.Y,
                    Direction        = FillDirection.Vertical,
                    Spacing          = new Vector2(10),
                    Children         = new Drawable[]
                    {
                        breadcrumbs = new ScreenBreadcrumbControl(screenStack)
                        {
                            RelativeSizeAxes = Axes.X,
                        },
                        titleText = new OsuSpriteText(),
                    },
                },
            };

            breadcrumbs.Current.ValueChanged += screen => titleText.Text = $"Changed to {screen.NewValue}";
            breadcrumbs.Current.TriggerChange();

            waitForCurrent();
            pushNext();
            waitForCurrent();
            pushNext();
            waitForCurrent();

            AddStep(@"make start current", () => startScreen.MakeCurrent());

            waitForCurrent();
            pushNext();
            waitForCurrent();
            AddAssert(@"only 2 items", () => breadcrumbs.Items.Count == 2);
            AddStep(@"exit current", () => screenStack.CurrentScreen.Exit());
            AddAssert(@"current screen is first", () => startScreen == screenStack.CurrentScreen);
        }