mirror of
https://github.com/osukey/osukey.git
synced 2025-08-07 00:23:59 +09:00
Delete breadcrumb implementation
This commit is contained in:
@ -7,7 +7,6 @@ using NUnit.Framework;
|
|||||||
using osu.Game.Online.API.Requests.Responses;
|
using osu.Game.Online.API.Requests.Responses;
|
||||||
using osu.Game.Overlays;
|
using osu.Game.Overlays;
|
||||||
using osu.Game.Overlays.Changelog;
|
using osu.Game.Overlays.Changelog;
|
||||||
using osu.Game.Overlays.Changelog.Header;
|
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.Online
|
namespace osu.Game.Tests.Visual.Online
|
||||||
{
|
{
|
||||||
@ -25,9 +24,6 @@ namespace osu.Game.Tests.Visual.Online
|
|||||||
typeof(ChangelogListing),
|
typeof(ChangelogListing),
|
||||||
typeof(ChangelogSingleBuild),
|
typeof(ChangelogSingleBuild),
|
||||||
typeof(ChangelogBuild),
|
typeof(ChangelogBuild),
|
||||||
typeof(Breadcrumb),
|
|
||||||
typeof(BreadcrumbListing),
|
|
||||||
typeof(BreadcrumbRelease),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
|
||||||
|
|
||||||
using osu.Framework.Graphics;
|
|
||||||
using osu.Framework.Graphics.Colour;
|
|
||||||
using osu.Framework.Graphics.Containers;
|
|
||||||
using osu.Framework.Graphics.Shapes;
|
|
||||||
using osu.Game.Overlays.Changelog.Header;
|
|
||||||
using osuTK.Graphics;
|
|
||||||
|
|
||||||
namespace osu.Game.Tests.Visual.UserInterface
|
|
||||||
{
|
|
||||||
public class TestSceneTextBadgePair : OsuTestScene
|
|
||||||
{
|
|
||||||
public TestSceneTextBadgePair()
|
|
||||||
{
|
|
||||||
Breadcrumb breadcrumb;
|
|
||||||
|
|
||||||
Add(new Container
|
|
||||||
{
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
Width = 250,
|
|
||||||
Height = 50,
|
|
||||||
Children = new Drawable[]
|
|
||||||
{
|
|
||||||
new Box
|
|
||||||
{
|
|
||||||
Colour = Color4.Gray,
|
|
||||||
Alpha = 0.5f,
|
|
||||||
RelativeSizeAxes = Axes.Both,
|
|
||||||
},
|
|
||||||
breadcrumb = new TestBadgePair(Color4.DeepSkyBlue, "Test")
|
|
||||||
{
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
AddStep(@"Deactivate", breadcrumb.Deactivate);
|
|
||||||
AddStep(@"Activate", breadcrumb.Activate);
|
|
||||||
AddStep(@"Hide text", () => breadcrumb.HideText(200));
|
|
||||||
AddStep(@"Show text", () => breadcrumb.ShowText(200));
|
|
||||||
AddStep(@"Different text", () => breadcrumb.ShowText(200, "This one's a little bit wider"));
|
|
||||||
AddStep(@"Different text", () => breadcrumb.ShowText(200, "Ok?.."));
|
|
||||||
}
|
|
||||||
|
|
||||||
private class TestBadgePair : Breadcrumb
|
|
||||||
{
|
|
||||||
public TestBadgePair(ColourInfo badgeColour, string displayText = "Listing", bool startCollapsed = true)
|
|
||||||
: base(badgeColour, displayText, startCollapsed)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,127 +0,0 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
|
||||||
|
|
||||||
using osu.Framework.Allocation;
|
|
||||||
using osu.Framework.Audio;
|
|
||||||
using osu.Framework.Audio.Sample;
|
|
||||||
using osu.Framework.Graphics;
|
|
||||||
using osu.Framework.Graphics.Colour;
|
|
||||||
using osu.Framework.Graphics.Containers;
|
|
||||||
using osu.Framework.Graphics.Sprites;
|
|
||||||
using osu.Framework.Input.Events;
|
|
||||||
using System;
|
|
||||||
using osu.Game.Graphics;
|
|
||||||
using osu.Game.Graphics.Sprites;
|
|
||||||
using osu.Game.Overlays.Changelog.Components;
|
|
||||||
|
|
||||||
namespace osu.Game.Overlays.Changelog.Header
|
|
||||||
{
|
|
||||||
public abstract class Breadcrumb : Container
|
|
||||||
{
|
|
||||||
protected SpriteText Text;
|
|
||||||
protected LineBadge LineBadge;
|
|
||||||
|
|
||||||
public bool IsActivated { get; protected set; }
|
|
||||||
|
|
||||||
public Action Action;
|
|
||||||
|
|
||||||
private SampleChannel sampleHover;
|
|
||||||
private SampleChannel sampleActivate;
|
|
||||||
|
|
||||||
protected Breadcrumb(ColourInfo badgeColour, string displayText = "Listing", bool startCollapsed = true)
|
|
||||||
{
|
|
||||||
AutoSizeAxes = Axes.X;
|
|
||||||
RelativeSizeAxes = Axes.Y;
|
|
||||||
Children = new Drawable[]
|
|
||||||
{
|
|
||||||
Text = new OsuSpriteText
|
|
||||||
{
|
|
||||||
Font = OsuFont.GetFont(size: 16),
|
|
||||||
Text = displayText,
|
|
||||||
Anchor = Anchor.Centre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
Margin = new MarginPadding { Top = 5, Bottom = 15 },
|
|
||||||
},
|
|
||||||
LineBadge = new LineBadge(startCollapsed)
|
|
||||||
{
|
|
||||||
CollapsedSize = 2,
|
|
||||||
UncollapsedSize = 10,
|
|
||||||
Colour = badgeColour,
|
|
||||||
Anchor = Anchor.BottomCentre,
|
|
||||||
Origin = Anchor.Centre,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void Deactivate()
|
|
||||||
{
|
|
||||||
if (!IsActivated)
|
|
||||||
return;
|
|
||||||
|
|
||||||
IsActivated = false;
|
|
||||||
LineBadge.Collapse();
|
|
||||||
Text.Font = Text.Font.With(weight: FontWeight.Regular);
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual void Activate()
|
|
||||||
{
|
|
||||||
if (IsActivated)
|
|
||||||
return;
|
|
||||||
|
|
||||||
IsActivated = true;
|
|
||||||
LineBadge.Uncollapse();
|
|
||||||
Text.Font = Text.Font.With(weight: FontWeight.Bold);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetTextColour(ColourInfo newColour, double duration = 0, Easing easing = Easing.None)
|
|
||||||
{
|
|
||||||
Text.FadeColour(newColour, duration, easing);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void HideText(double duration = 0, Easing easing = Easing.InOutCubic)
|
|
||||||
{
|
|
||||||
LineBadge.Collapse();
|
|
||||||
Text.MoveToY(20, duration, easing)
|
|
||||||
.FadeOut(duration, easing);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowText(double duration = 0, string displayText = null, Easing easing = Easing.InOutCubic)
|
|
||||||
{
|
|
||||||
LineBadge.Collapse();
|
|
||||||
Text.MoveToY(20, duration, easing)
|
|
||||||
.FadeOut(duration, easing)
|
|
||||||
.Then()
|
|
||||||
.MoveToY(0, duration, easing)
|
|
||||||
.FadeIn(duration, easing);
|
|
||||||
|
|
||||||
Scheduler.AddDelayed(() =>
|
|
||||||
{
|
|
||||||
Text.Text = displayText;
|
|
||||||
LineBadge.Uncollapse();
|
|
||||||
}, duration);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override bool OnHover(HoverEvent e)
|
|
||||||
{
|
|
||||||
if (!IsActivated)
|
|
||||||
sampleHover?.Play();
|
|
||||||
return base.OnHover(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override bool OnClick(ClickEvent e)
|
|
||||||
{
|
|
||||||
Action?.Invoke();
|
|
||||||
Activate();
|
|
||||||
sampleActivate?.Play();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
|
||||||
private void load(AudioManager audio)
|
|
||||||
{
|
|
||||||
sampleHover = audio.Sample.Get(@"UI/generic-hover-soft");
|
|
||||||
sampleActivate = audio.Sample.Get(@"UI/generic-select-soft");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,66 +0,0 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
|
||||||
|
|
||||||
using osu.Framework.Graphics;
|
|
||||||
using osu.Framework.Graphics.Colour;
|
|
||||||
using osu.Framework.Input.Events;
|
|
||||||
using osu.Game.Graphics;
|
|
||||||
using osuTK.Graphics;
|
|
||||||
|
|
||||||
namespace osu.Game.Overlays.Changelog.Header
|
|
||||||
{
|
|
||||||
public class BreadcrumbListing : Breadcrumb
|
|
||||||
{
|
|
||||||
private readonly ColourInfo badgeColour;
|
|
||||||
|
|
||||||
public BreadcrumbListing(ColourInfo badgeColour)
|
|
||||||
: base(badgeColour, "Listing", false)
|
|
||||||
{
|
|
||||||
this.badgeColour = badgeColour;
|
|
||||||
Text.Font = Text.Font.With(weight: FontWeight.Bold);
|
|
||||||
Text.Anchor = Anchor.TopCentre;
|
|
||||||
Text.Origin = Anchor.TopCentre;
|
|
||||||
|
|
||||||
AutoSizeAxes = Axes.None;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void LoadComplete()
|
|
||||||
{
|
|
||||||
base.LoadComplete();
|
|
||||||
|
|
||||||
Activate();
|
|
||||||
Width = Text.DrawWidth;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Activate()
|
|
||||||
{
|
|
||||||
if (IsActivated)
|
|
||||||
return;
|
|
||||||
|
|
||||||
base.Activate();
|
|
||||||
SetTextColour(Color4.White, 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Deactivate()
|
|
||||||
{
|
|
||||||
if (!IsActivated)
|
|
||||||
return;
|
|
||||||
|
|
||||||
base.Deactivate();
|
|
||||||
SetTextColour(badgeColour, 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override bool OnHover(HoverEvent e)
|
|
||||||
{
|
|
||||||
LineBadge.Uncollapse();
|
|
||||||
return base.OnHover(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnHoverLost(HoverLostEvent e)
|
|
||||||
{
|
|
||||||
if (!IsActivated)
|
|
||||||
LineBadge.Collapse();
|
|
||||||
base.OnHoverLost(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
|
||||||
|
|
||||||
using osu.Framework.Graphics.Colour;
|
|
||||||
using osu.Game.Graphics;
|
|
||||||
|
|
||||||
namespace osu.Game.Overlays.Changelog.Header
|
|
||||||
{
|
|
||||||
public class BreadcrumbRelease : Breadcrumb
|
|
||||||
{
|
|
||||||
private const float transition_duration = 125;
|
|
||||||
|
|
||||||
public BreadcrumbRelease(ColourInfo badgeColour, string displayText)
|
|
||||||
: base(badgeColour, displayText)
|
|
||||||
{
|
|
||||||
Text.Font = Text.Font.With(weight: FontWeight.Bold);
|
|
||||||
Text.Y = 20;
|
|
||||||
Text.Alpha = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShowBuild(string displayText = null)
|
|
||||||
{
|
|
||||||
ShowText(transition_duration, displayText);
|
|
||||||
IsActivated = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Deactivate()
|
|
||||||
{
|
|
||||||
if (!IsActivated)
|
|
||||||
return;
|
|
||||||
|
|
||||||
HideText(transition_duration);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user