mirror of
https://github.com/ppy/osu.git
synced 2025-01-06 04:13:11 +08:00
Simplify colour setting for additional elements in OverlayRulesetTabItem
This commit is contained in:
parent
7cab181c12
commit
904b068a15
@ -11,6 +11,7 @@ using osu.Game.Graphics.UserInterface;
|
|||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace osu.Game.Overlays
|
namespace osu.Game.Overlays
|
||||||
{
|
{
|
||||||
@ -33,10 +34,12 @@ namespace osu.Game.Overlays
|
|||||||
|
|
||||||
accentColour = value;
|
accentColour = value;
|
||||||
|
|
||||||
UpdateState();
|
updateState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected Action<Color4> OnStateUpdated;
|
||||||
|
|
||||||
protected override Container<Drawable> Content => content;
|
protected override Container<Drawable> Content => content;
|
||||||
|
|
||||||
public OverlayRulesetTabItem(RulesetInfo value)
|
public OverlayRulesetTabItem(RulesetInfo value)
|
||||||
@ -67,32 +70,32 @@ namespace osu.Game.Overlays
|
|||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
Enabled.BindValueChanged(_ => UpdateState(), true);
|
Enabled.BindValueChanged(_ => updateState(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool OnHover(HoverEvent e)
|
protected override bool OnHover(HoverEvent e)
|
||||||
{
|
{
|
||||||
base.OnHover(e);
|
base.OnHover(e);
|
||||||
UpdateState();
|
updateState();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnHoverLost(HoverLostEvent e)
|
protected override void OnHoverLost(HoverLostEvent e)
|
||||||
{
|
{
|
||||||
base.OnHoverLost(e);
|
base.OnHoverLost(e);
|
||||||
UpdateState();
|
updateState();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnActivated() => UpdateState();
|
protected override void OnActivated() => updateState();
|
||||||
|
|
||||||
protected override void OnDeactivated() => UpdateState();
|
protected override void OnDeactivated() => updateState();
|
||||||
|
|
||||||
protected virtual void UpdateState()
|
private void updateState()
|
||||||
{
|
{
|
||||||
|
var updatedColour = IsHovered || Active.Value ? Color4.White : Enabled.Value ? AccentColour : Color4.DimGray;
|
||||||
Text.Font = Text.Font.With(weight: Active.Value ? FontWeight.Bold : FontWeight.Medium);
|
Text.Font = Text.Font.With(weight: Active.Value ? FontWeight.Bold : FontWeight.Medium);
|
||||||
Text.FadeColour(GetColour(), 120, Easing.OutQuint);
|
Text.FadeColour(updatedColour, 120, Easing.OutQuint);
|
||||||
|
OnStateUpdated?.Invoke(updatedColour);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Color4 GetColour() => IsHovered || Active.Value ? Color4.White : Enabled.Value ? AccentColour : Color4.DimGray;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ using osu.Framework.Graphics;
|
|||||||
using osu.Framework.Graphics.Sprites;
|
using osu.Framework.Graphics.Sprites;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Graphics;
|
|
||||||
|
|
||||||
namespace osu.Game.Overlays.Profile.Header.Components
|
namespace osu.Game.Overlays.Profile.Header.Components
|
||||||
{
|
{
|
||||||
@ -13,12 +12,6 @@ namespace osu.Game.Overlays.Profile.Header.Components
|
|||||||
{
|
{
|
||||||
private readonly SpriteIcon icon;
|
private readonly SpriteIcon icon;
|
||||||
|
|
||||||
public new Color4 AccentColour
|
|
||||||
{
|
|
||||||
get => base.AccentColour;
|
|
||||||
set => base.AccentColour = icon.Colour = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool isDefault;
|
private bool isDefault;
|
||||||
|
|
||||||
public bool IsDefault
|
public bool IsDefault
|
||||||
@ -47,12 +40,8 @@ namespace osu.Game.Overlays.Profile.Header.Components
|
|||||||
Icon = FontAwesome.Solid.Star,
|
Icon = FontAwesome.Solid.Star,
|
||||||
Size = new Vector2(12),
|
Size = new Vector2(12),
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
protected override void UpdateState()
|
OnStateUpdated += colour => icon.FadeColour(colour, 120, Easing.OutQuint);
|
||||||
{
|
|
||||||
base.UpdateState();
|
|
||||||
icon.FadeColour(GetColour(), 120, Easing.OutQuint);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user