1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 04:13:00 +08:00

Update the component with an abstract RulesetSelector class

This commit is contained in:
Andrei Zavatski 2019-06-26 18:56:40 +03:00
parent e9f3a1ba63
commit 2e49b4ffcd
2 changed files with 31 additions and 26 deletions

View File

@ -12,10 +12,8 @@ using osuTK.Graphics;
namespace osu.Game.Overlays.Profile.Header.Components
{
public class ProfileRulesetSelector : TabControl<RulesetInfo>
public class ProfileRulesetSelector : RulesetSelector
{
protected override Dropdown<RulesetInfo> CreateDropdown() => null;
protected override TabItem<RulesetInfo> CreateTabItem(RulesetInfo value) => new RulesetTabItem(value)
{
AccentColour = AccentColour
@ -48,13 +46,8 @@ namespace osu.Game.Overlays.Profile.Header.Components
}
[BackgroundDependencyLoader]
private void load(RulesetStore rulesets, OsuColour colours)
private void load(OsuColour colours)
{
foreach (var r in rulesets.AvailableRulesets)
{
AddItem(r);
}
AccentColour = colours.Seafoam;
}

View File

@ -94,7 +94,8 @@ namespace osu.Game.Overlays.Profile.Header.Components
{
base.OnHover(e);
updateState();
if (!Active.Value)
hoverAction();
return true;
}
@ -103,29 +104,40 @@ namespace osu.Game.Overlays.Profile.Header.Components
{
base.OnHoverLost(e);
updateState();
if (!Active.Value)
unhoverAction();
}
protected override void OnActivated() => updateState();
protected override void OnActivated()
{
hoverAction();
text.Font = text.Font.With(weight: FontWeight.Bold);
}
protected override void OnDeactivated() => updateState();
protected override void OnDeactivated()
{
unhoverAction();
text.Font = text.Font.With(weight: FontWeight.Medium);
}
private void updateState()
{
if (Active.Value || IsHovered)
{
text.FadeColour(Color4.White, 120, Easing.InQuad);
icon.FadeColour(Color4.White, 120, Easing.InQuad);
if (Active.Value)
text.Font = text.Font.With(weight: FontWeight.Bold);
}
if (Active.Value)
OnActivated();
else
{
text.FadeColour(AccentColour, 120, Easing.InQuad);
icon.FadeColour(AccentColour, 120, Easing.InQuad);
text.Font = text.Font.With(weight: FontWeight.Medium);
}
OnDeactivated();
}
private void hoverAction()
{
text.FadeColour(Color4.White, 120, Easing.InQuad);
icon.FadeColour(Color4.White, 120, Easing.InQuad);
}
private void unhoverAction()
{
text.FadeColour(AccentColour, 120, Easing.InQuad);
icon.FadeColour(AccentColour, 120, Easing.InQuad);
}
}
}