mirror of
https://github.com/ppy/osu.git
synced 2025-01-26 16:12:54 +08:00
Set global action as a parameter in toast
This commit is contained in:
parent
2071cba944
commit
52f5473cc0
@ -196,7 +196,7 @@ namespace osu.Game.Configuration
|
||||
|
||||
public Func<int, string> LookupSkinName { private get; set; }
|
||||
|
||||
public Func<GlobalAction, string> LookupKeyBindings { get; set; }
|
||||
public Func<GlobalAction?, string> LookupKeyBindings { get; set; }
|
||||
}
|
||||
|
||||
public enum OsuSetting
|
||||
|
@ -37,7 +37,7 @@ namespace osu.Game.Input
|
||||
/// </summary>
|
||||
/// <param name="globalAction">The action to lookup.</param>
|
||||
/// <returns>A set of display strings for all the user's key configuration for the action.</returns>
|
||||
public IEnumerable<string> GetReadableKeyCombinationsFor(GlobalAction globalAction)
|
||||
public IEnumerable<string> GetReadableKeyCombinationsFor(GlobalAction? globalAction)
|
||||
{
|
||||
foreach (var action in Query().Where(b => (GlobalAction)b.Action == globalAction))
|
||||
{
|
||||
|
@ -6,7 +6,6 @@ using osu.Framework.Bindables;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Input.Bindings;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Input.Bindings;
|
||||
using osu.Game.Overlays.OSD;
|
||||
|
||||
@ -26,9 +25,6 @@ namespace osu.Game.Overlays.Music
|
||||
[Resolved(canBeNull: true)]
|
||||
private OnScreenDisplay onScreenDisplay { get; set; }
|
||||
|
||||
[Resolved]
|
||||
private OsuConfigManager config { get; set; }
|
||||
|
||||
public bool OnPressed(GlobalAction action)
|
||||
{
|
||||
if (beatmap.Disabled)
|
||||
@ -41,11 +37,11 @@ namespace osu.Game.Overlays.Music
|
||||
bool wasPlaying = musicController.IsPlaying;
|
||||
|
||||
if (musicController.TogglePause())
|
||||
onScreenDisplay?.Display(new MusicActionToast(wasPlaying ? "Pause track" : "Play track", config.LookupKeyBindings(action)));
|
||||
onScreenDisplay?.Display(new MusicActionToast(wasPlaying ? "Pause track" : "Play track", action));
|
||||
return true;
|
||||
|
||||
case GlobalAction.MusicNext:
|
||||
musicController.NextTrack(() => onScreenDisplay?.Display(new MusicActionToast("Next track", config.LookupKeyBindings(action))));
|
||||
musicController.NextTrack(() => onScreenDisplay?.Display(new MusicActionToast("Next track", action)));
|
||||
|
||||
return true;
|
||||
|
||||
@ -55,11 +51,11 @@ namespace osu.Game.Overlays.Music
|
||||
switch (res)
|
||||
{
|
||||
case PreviousTrackResult.Restart:
|
||||
onScreenDisplay?.Display(new MusicActionToast("Restart track", config.LookupKeyBindings(action)));
|
||||
onScreenDisplay?.Display(new MusicActionToast("Restart track", action));
|
||||
break;
|
||||
|
||||
case PreviousTrackResult.Previous:
|
||||
onScreenDisplay?.Display(new MusicActionToast("Previous track", config.LookupKeyBindings(action)));
|
||||
onScreenDisplay?.Display(new MusicActionToast("Previous track", action));
|
||||
break;
|
||||
}
|
||||
});
|
||||
@ -76,8 +72,8 @@ namespace osu.Game.Overlays.Music
|
||||
|
||||
private class MusicActionToast : Toast
|
||||
{
|
||||
public MusicActionToast(string action, string shortcut)
|
||||
: base("Music Playback", action, shortcut)
|
||||
public MusicActionToast(string value, GlobalAction action)
|
||||
: base("Music Playback", value, action: action)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,14 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Graphics.Shapes;
|
||||
using osu.Game.Configuration;
|
||||
using osu.Game.Graphics;
|
||||
using osu.Game.Graphics.Sprites;
|
||||
using osu.Game.Input.Bindings;
|
||||
using osuTK;
|
||||
using osuTK.Graphics;
|
||||
|
||||
@ -16,12 +19,22 @@ namespace osu.Game.Overlays.OSD
|
||||
private const int toast_minimum_width = 240;
|
||||
|
||||
private readonly Container content;
|
||||
|
||||
private readonly OsuSpriteText spriteText;
|
||||
|
||||
private readonly string shortcut;
|
||||
|
||||
private readonly GlobalAction? action;
|
||||
|
||||
protected override Container<Drawable> Content => content;
|
||||
|
||||
protected readonly OsuSpriteText ValueText;
|
||||
|
||||
protected Toast(string description, string value, string shortcut)
|
||||
protected Toast(string description, string value, string shortcut = null, GlobalAction? action = null)
|
||||
{
|
||||
this.shortcut = shortcut;
|
||||
this.action = action;
|
||||
|
||||
Anchor = Anchor.Centre;
|
||||
Origin = Anchor.Centre;
|
||||
|
||||
@ -68,7 +81,7 @@ namespace osu.Game.Overlays.OSD
|
||||
Origin = Anchor.Centre,
|
||||
Text = value
|
||||
},
|
||||
new OsuSpriteText
|
||||
spriteText = new OsuSpriteText
|
||||
{
|
||||
Anchor = Anchor.BottomCentre,
|
||||
Origin = Anchor.BottomCentre,
|
||||
@ -76,9 +89,23 @@ namespace osu.Game.Overlays.OSD
|
||||
Alpha = 0.3f,
|
||||
Margin = new MarginPadding { Bottom = 15 },
|
||||
Font = OsuFont.GetFont(size: 12, weight: FontWeight.Bold),
|
||||
Text = string.IsNullOrEmpty(shortcut) ? "NO KEY BOUND" : shortcut.ToUpperInvariant()
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(OsuConfigManager config)
|
||||
{
|
||||
string text;
|
||||
|
||||
if (action != null)
|
||||
text = config.LookupKeyBindings(action);
|
||||
else if (!string.IsNullOrEmpty(shortcut))
|
||||
text = shortcut;
|
||||
else
|
||||
text = "no key bound";
|
||||
|
||||
spriteText.Text = text.ToUpperInvariant();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user