Move title specification for settings groups to constructor

Using an abstract property was awkward for this as it is being consumed
in the underlying constructor but could not be dynamically set in time from a
derived class.
This commit is contained in:
Dean Herbert 2020-09-09 18:48:02 +09:00
parent b79e9791c3
commit d3957e6155
9 changed files with 27 additions and 20 deletions

View File

@ -48,7 +48,10 @@ public TestSceneReplaySettingsOverlay()
private class ExampleContainer : PlayerSettingsGroup
{
protected override string Title => @"example";
public ExampleContainer()
: base("example")
{
}
}
}
}

View File

@ -20,8 +20,6 @@ public class LadderEditorSettings : PlayerSettingsGroup
{
private const int padding = 10;
protected override string Title => @"ladder";
private SettingsDropdown<TournamentRound> roundDropdown;
private PlayerCheckbox losersCheckbox;
private DateTextBox dateTimeBox;
@ -34,6 +32,11 @@ public class LadderEditorSettings : PlayerSettingsGroup
[Resolved]
private LadderInfo ladderInfo { get; set; }
public LadderEditorSettings()
: base("ladder")
{
}
[BackgroundDependencyLoader]
private void load()
{

View File

@ -8,9 +8,8 @@ namespace osu.Game.Rulesets.Edit
{
public class ToolboxGroup : PlayerSettingsGroup
{
protected override string Title => "toolbox";
public ToolboxGroup()
: base("toolbox")
{
RelativeSizeAxes = Axes.X;
Width = 1;

View File

@ -10,7 +10,10 @@ namespace osu.Game.Screens.Play.PlayerSettings
{
public class CollectionSettings : PlayerSettingsGroup
{
protected override string Title => @"collections";
public CollectionSettings()
: base("collections")
{
}
[BackgroundDependencyLoader]
private void load()

View File

@ -10,7 +10,10 @@ namespace osu.Game.Screens.Play.PlayerSettings
{
public class DiscussionSettings : PlayerSettingsGroup
{
protected override string Title => @"discussions";
public DiscussionSettings()
: base("discussions")
{
}
[BackgroundDependencyLoader]
private void load(OsuConfigManager config)

View File

@ -9,11 +9,10 @@ namespace osu.Game.Screens.Play.PlayerSettings
{
public class InputSettings : PlayerSettingsGroup
{
protected override string Title => "Input settings";
private readonly PlayerCheckbox mouseButtonsCheckbox;
public InputSettings()
: base("Input Settings")
{
Children = new Drawable[]
{

View File

@ -13,8 +13,6 @@ public class PlaybackSettings : PlayerSettingsGroup
{
private const int padding = 10;
protected override string Title => @"playback";
public readonly Bindable<double> UserPlaybackRate = new BindableDouble(1)
{
Default = 1,
@ -28,6 +26,7 @@ public class PlaybackSettings : PlayerSettingsGroup
private readonly OsuSpriteText multiplierText;
public PlaybackSettings()
: base("playback")
{
Children = new Drawable[]
{

View File

@ -17,11 +17,6 @@ namespace osu.Game.Screens.Play.PlayerSettings
{
public abstract class PlayerSettingsGroup : Container
{
/// <summary>
/// The title to be displayed in the header of this group.
/// </summary>
protected abstract string Title { get; }
private const float transition_duration = 250;
private const int container_width = 270;
private const int border_thickness = 2;
@ -58,7 +53,11 @@ public bool Expanded
private Color4 expandedColour;
protected PlayerSettingsGroup()
/// <summary>
/// Create a new instance.
/// </summary>
/// <param name="title">The title to be displayed in the header of this group.</param>
protected PlayerSettingsGroup(string title)
{
AutoSizeAxes = Axes.Y;
Width = container_width;
@ -95,7 +94,7 @@ protected PlayerSettingsGroup()
{
Origin = Anchor.CentreLeft,
Anchor = Anchor.CentreLeft,
Text = Title.ToUpperInvariant(),
Text = title.ToUpperInvariant(),
Font = OsuFont.GetFont(weight: FontWeight.Bold, size: 17),
Margin = new MarginPadding { Left = 10 },
},

View File

@ -10,8 +10,6 @@ namespace osu.Game.Screens.Play.PlayerSettings
{
public class VisualSettings : PlayerSettingsGroup
{
protected override string Title => "Visual settings";
private readonly PlayerSliderBar<double> dimSliderBar;
private readonly PlayerSliderBar<double> blurSliderBar;
private readonly PlayerCheckbox showStoryboardToggle;
@ -19,6 +17,7 @@ public class VisualSettings : PlayerSettingsGroup
private readonly PlayerCheckbox beatmapHitsoundsToggle;
public VisualSettings()
: base("Visual Settings")
{
Children = new Drawable[]
{