diff --git a/osu.Game/Overlays/BeatmapListing/BeatmapListingSortTabControl.cs b/osu.Game/Overlays/BeatmapListing/BeatmapListingSortTabControl.cs index d6841da408..cb41b33bc4 100644 --- a/osu.Game/Overlays/BeatmapListing/BeatmapListingSortTabControl.cs +++ b/osu.Game/Overlays/BeatmapListing/BeatmapListingSortTabControl.cs @@ -33,74 +33,74 @@ namespace osu.Game.Overlays.BeatmapListing { SortDirection = { BindTarget = SortDirection } }; + } - private class BeatmapSortTabItem : SortTabItem + private class BeatmapSortTabItem : SortTabItem + { + public readonly Bindable SortDirection = new Bindable(); + + public BeatmapSortTabItem(BeatmapSortCriteria value) + : base(value) { - public readonly Bindable SortDirection = new Bindable(); + } - public BeatmapSortTabItem(BeatmapSortCriteria value) - : base(value) + protected override TabButton CreateTabButton(BeatmapSortCriteria value) => new BeatmapTabButton(value) + { + Active = { BindTarget = Active }, + SortDirection = { BindTarget = SortDirection } + }; + } + + private class BeatmapTabButton : TabButton + { + public readonly Bindable SortDirection = new Bindable(); + + protected override Color4 ContentColour + { + set { + base.ContentColour = value; + icon.Colour = value; } + } - protected override TabButton CreateTabButton(BeatmapSortCriteria value) => new BeatmapTabButton(value) + private readonly SpriteIcon icon; + + public BeatmapTabButton(BeatmapSortCriteria value) + : base(value) + { + Add(icon = new SpriteIcon { - Active = { BindTarget = Active }, - SortDirection = { BindTarget = SortDirection } - }; + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + AlwaysPresent = true, + Alpha = 0, + Size = new Vector2(6) + }); + } - private class BeatmapTabButton : TabButton + protected override void LoadComplete() + { + base.LoadComplete(); + + SortDirection.BindValueChanged(direction => { - public readonly Bindable SortDirection = new Bindable(); + icon.Icon = direction.NewValue == Overlays.SortDirection.Ascending ? FontAwesome.Solid.CaretUp : FontAwesome.Solid.CaretDown; + }, true); + } - protected override Color4 ContentColour - { - set - { - base.ContentColour = value; - icon.Colour = value; - } - } + protected override void UpdateState() + { + base.UpdateState(); + icon.FadeTo(Active.Value || IsHovered ? 1 : 0, 200, Easing.OutQuint); + } - private readonly SpriteIcon icon; + protected override bool OnClick(ClickEvent e) + { + if (Active.Value) + SortDirection.Value = SortDirection.Value == Overlays.SortDirection.Ascending ? Overlays.SortDirection.Descending : Overlays.SortDirection.Ascending; - public BeatmapTabButton(BeatmapSortCriteria value) - : base(value) - { - Add(icon = new SpriteIcon - { - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - AlwaysPresent = true, - Alpha = 0, - Size = new Vector2(6) - }); - } - - protected override void LoadComplete() - { - base.LoadComplete(); - - SortDirection.BindValueChanged(direction => - { - icon.Icon = direction.NewValue == Overlays.SortDirection.Ascending ? FontAwesome.Solid.CaretUp : FontAwesome.Solid.CaretDown; - }, true); - } - - protected override void UpdateState() - { - base.UpdateState(); - icon.FadeTo(Active.Value || IsHovered ? 1 : 0, 200, Easing.OutQuint); - } - - protected override bool OnClick(ClickEvent e) - { - if (Active.Value) - SortDirection.Value = SortDirection.Value == Overlays.SortDirection.Ascending ? Overlays.SortDirection.Descending : Overlays.SortDirection.Ascending; - - return base.OnClick(e); - } - } + return base.OnClick(e); } } } diff --git a/osu.Game/Overlays/OverlaySortTabControl.cs b/osu.Game/Overlays/OverlaySortTabControl.cs index 487dd70db9..5a713ab08e 100644 --- a/osu.Game/Overlays/OverlaySortTabControl.cs +++ b/osu.Game/Overlays/OverlaySortTabControl.cs @@ -75,93 +75,93 @@ namespace osu.Game.Overlays { AutoSizeAxes = Axes.Both; } + } - protected class SortTabItem : TabItem + protected class SortTabItem : TabItem + { + public SortTabItem(T value) + : base(value) { - public SortTabItem(T value) - : base(value) + AutoSizeAxes = Axes.Both; + Child = CreateTabButton(value); + } + + [NotNull] + protected virtual TabButton CreateTabButton(T value) => new TabButton(value) + { + Active = { BindTarget = Active } + }; + + protected override void OnActivated() + { + } + + protected override void OnDeactivated() + { + } + } + + protected class TabButton : HeaderButton + { + public readonly BindableBool Active = new BindableBool(); + + protected override Container Content => content; + + protected virtual Color4 ContentColour + { + set => text.Colour = value; + } + + [Resolved] + private OverlayColourProvider colourProvider { get; set; } + + private readonly SpriteText text; + private readonly FillFlowContainer content; + + public TabButton(T value) + { + base.Content.Add(content = new FillFlowContainer { - AutoSizeAxes = Axes.Both; - Child = CreateTabButton(value); - } - - [NotNull] - protected virtual TabButton CreateTabButton(T value) => new TabButton(value) - { - Active = { BindTarget = Active } - }; - - protected override void OnActivated() - { - } - - protected override void OnDeactivated() - { - } - - protected class TabButton : HeaderButton - { - public readonly BindableBool Active = new BindableBool(); - - protected override Container Content => content; - - protected virtual Color4 ContentColour + AutoSizeAxes = Axes.Both, + Direction = FillDirection.Horizontal, + Spacing = new Vector2(3, 0), + Children = new Drawable[] { - set => text.Colour = value; - } - - [Resolved] - private OverlayColourProvider colourProvider { get; set; } - - private readonly SpriteText text; - private readonly FillFlowContainer content; - - public TabButton(T value) - { - base.Content.Add(content = new FillFlowContainer + text = new OsuSpriteText { - AutoSizeAxes = Axes.Both, - Direction = FillDirection.Horizontal, - Spacing = new Vector2(3, 0), - Children = new Drawable[] - { - text = new OsuSpriteText - { - Anchor = Anchor.Centre, - Origin = Anchor.Centre, - Font = OsuFont.GetFont(size: 12), - Text = value.ToString() - } - } - }); + Anchor = Anchor.Centre, + Origin = Anchor.Centre, + Font = OsuFont.GetFont(size: 12), + Text = value.ToString() + } } + }); + } - protected override void LoadComplete() - { - base.LoadComplete(); - Active.BindValueChanged(_ => UpdateState(), true); - } + protected override void LoadComplete() + { + base.LoadComplete(); + Active.BindValueChanged(_ => UpdateState(), true); + } - protected override bool OnHover(HoverEvent e) - { - UpdateState(); - return true; - } + protected override bool OnHover(HoverEvent e) + { + UpdateState(); + return true; + } - protected override void OnHoverLost(HoverLostEvent e) => UpdateState(); + protected override void OnHoverLost(HoverLostEvent e) => UpdateState(); - protected virtual void UpdateState() - { - if (Active.Value || IsHovered) - ShowBackground(); - else - HideBackground(); + protected virtual void UpdateState() + { + if (Active.Value || IsHovered) + ShowBackground(); + else + HideBackground(); - ContentColour = Active.Value && !IsHovered ? colourProvider.Light1 : Color4.White; + ContentColour = Active.Value && !IsHovered ? colourProvider.Light1 : Color4.White; - text.Font = text.Font.With(weight: Active.Value ? FontWeight.Bold : FontWeight.Medium); - } - } + text.Font = text.Font.With(weight: Active.Value ? FontWeight.Bold : FontWeight.Medium); } } }