diff --git a/osu.Game/Graphics/UserInterface/ScreenTitle.cs b/osu.Game/Graphics/UserInterface/ScreenTitle.cs index d7cba06d9d..14c87bb59d 100644 --- a/osu.Game/Graphics/UserInterface/ScreenTitle.cs +++ b/osu.Game/Graphics/UserInterface/ScreenTitle.cs @@ -9,24 +9,24 @@ using osuTK.Graphics; namespace osu.Game.Graphics.UserInterface { - public class ScreenTitle : CompositeDrawable, IHasAccentColour + public abstract class ScreenTitle : CompositeDrawable, IHasAccentColour { private readonly SpriteIcon iconSprite; private readonly OsuSpriteText titleText, pageText; - public FontAwesome Icon + protected FontAwesome Icon { get => iconSprite.Icon; set => iconSprite.Icon = value; } - public string Title + protected string Title { get => titleText.Text; set => titleText.Text = value; } - public string Section + protected string Section { get => pageText.Text; set => pageText.Text = value; @@ -38,7 +38,7 @@ namespace osu.Game.Graphics.UserInterface set => pageText.Colour = value; } - public ScreenTitle() + protected ScreenTitle() { AutoSizeAxes = Axes.Both; diff --git a/osu.Game/Screens/Multi/Header.cs b/osu.Game/Screens/Multi/Header.cs index bb4acc6007..0f945d107f 100644 --- a/osu.Game/Screens/Multi/Header.cs +++ b/osu.Game/Screens/Multi/Header.cs @@ -21,7 +21,7 @@ namespace osu.Game.Screens.Multi public Header(ScreenStack stack) { - ScreenTitle title; + MultiHeaderTitle title; RelativeSizeAxes = Axes.X; Height = HEIGHT; @@ -42,8 +42,6 @@ namespace osu.Game.Screens.Multi { Anchor = Anchor.CentreLeft, Origin = Anchor.BottomLeft, - Icon = FontAwesome.fa_osu_multi, - Title = "multiplayer", }, breadcrumbs = new HeaderBreadcrumbControl(stack) { @@ -58,7 +56,7 @@ namespace osu.Game.Screens.Multi breadcrumbs.Current.ValueChanged += screen => { if (screen.NewValue is IMultiplayerSubScreen multiScreen) - title.Section = multiScreen.ShortTitle.ToLowerInvariant(); + title.Screen = multiScreen; }; breadcrumbs.Current.TriggerChange(); @@ -72,9 +70,16 @@ namespace osu.Game.Screens.Multi private class MultiHeaderTitle : ScreenTitle { + public IMultiplayerSubScreen Screen + { + set => Section = value.ShortTitle.ToLowerInvariant(); + } + [BackgroundDependencyLoader] private void load(OsuColour colours) { + Title = "multiplayer"; + Icon = FontAwesome.fa_osu_multi; AccentColour = colours.Yellow; } }