Remake OsuTabControl.AccentColour

This commit is contained in:
Andrei Zavatski
2020-01-26 12:57:19 +03:00
parent 6c1fa05804
commit e442e8535b
2 changed files with 15 additions and 10 deletions

View File

@ -21,19 +21,16 @@ namespace osu.Game.Graphics.UserInterface
{
public class OsuTabControl<T> : TabControl<T>
{
protected readonly Bindable<Color4> AccentColourBindable = new Bindable<Color4>();
private Color4 accentColour;
public Color4 AccentColour
{
get => AccentColourBindable.Value;
get => accentColour;
set
{
AccentColourBindable.Value = value;
accentColour = value;
if (Dropdown is IHasAccentColour dropdown)
dropdown.AccentColour = value;
foreach (var i in TabContainer.Children.OfType<IHasAccentColour>())
i.AccentColour = value;
OnAccentColourChanged(value);
}
}
@ -93,6 +90,14 @@ namespace osu.Game.Graphics.UserInterface
strip.Width = Interpolation.ValueAt(Math.Clamp(Clock.ElapsedFrameTime, 0, 1000), strip.Width, StripWidth, 0, 500, Easing.OutQuint);
}
protected virtual void OnAccentColourChanged(Color4 colour)
{
if (Dropdown is IHasAccentColour dropdown)
dropdown.AccentColour = colour;
foreach (var i in TabContainer.Children.OfType<IHasAccentColour>())
i.AccentColour = colour;
}
public class OsuTabItem : TabItem<T>, IHasAccentColour
{
protected readonly SpriteText Text;

View File

@ -36,10 +36,10 @@ namespace osu.Game.Overlays
});
}
protected override void LoadComplete()
protected override void OnAccentColourChanged(Color4 colour)
{
base.LoadComplete();
AccentColourBindable.BindValueChanged(colour => bar.Colour = colour.NewValue, true);
base.OnAccentColourChanged(colour);
bar.Colour = colour;
}
protected override Dropdown<T> CreateDropdown() => null;