mirror of
https://github.com/ppy/osu.git
synced 2025-01-27 13:23:05 +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<int, string> LookupSkinName { private get; set; }
|
||||||
|
|
||||||
public Func<GlobalAction, string> LookupKeyBindings { get; set; }
|
public Func<GlobalAction?, string> LookupKeyBindings { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum OsuSetting
|
public enum OsuSetting
|
||||||
|
@ -37,7 +37,7 @@ namespace osu.Game.Input
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="globalAction">The action to lookup.</param>
|
/// <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>
|
/// <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))
|
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.Graphics;
|
||||||
using osu.Framework.Input.Bindings;
|
using osu.Framework.Input.Bindings;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Configuration;
|
|
||||||
using osu.Game.Input.Bindings;
|
using osu.Game.Input.Bindings;
|
||||||
using osu.Game.Overlays.OSD;
|
using osu.Game.Overlays.OSD;
|
||||||
|
|
||||||
@ -26,9 +25,6 @@ namespace osu.Game.Overlays.Music
|
|||||||
[Resolved(canBeNull: true)]
|
[Resolved(canBeNull: true)]
|
||||||
private OnScreenDisplay onScreenDisplay { get; set; }
|
private OnScreenDisplay onScreenDisplay { get; set; }
|
||||||
|
|
||||||
[Resolved]
|
|
||||||
private OsuConfigManager config { get; set; }
|
|
||||||
|
|
||||||
public bool OnPressed(GlobalAction action)
|
public bool OnPressed(GlobalAction action)
|
||||||
{
|
{
|
||||||
if (beatmap.Disabled)
|
if (beatmap.Disabled)
|
||||||
@ -41,11 +37,11 @@ namespace osu.Game.Overlays.Music
|
|||||||
bool wasPlaying = musicController.IsPlaying;
|
bool wasPlaying = musicController.IsPlaying;
|
||||||
|
|
||||||
if (musicController.TogglePause())
|
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;
|
return true;
|
||||||
|
|
||||||
case GlobalAction.MusicNext:
|
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;
|
return true;
|
||||||
|
|
||||||
@ -55,11 +51,11 @@ namespace osu.Game.Overlays.Music
|
|||||||
switch (res)
|
switch (res)
|
||||||
{
|
{
|
||||||
case PreviousTrackResult.Restart:
|
case PreviousTrackResult.Restart:
|
||||||
onScreenDisplay?.Display(new MusicActionToast("Restart track", config.LookupKeyBindings(action)));
|
onScreenDisplay?.Display(new MusicActionToast("Restart track", action));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PreviousTrackResult.Previous:
|
case PreviousTrackResult.Previous:
|
||||||
onScreenDisplay?.Display(new MusicActionToast("Previous track", config.LookupKeyBindings(action)));
|
onScreenDisplay?.Display(new MusicActionToast("Previous track", action));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -76,8 +72,8 @@ namespace osu.Game.Overlays.Music
|
|||||||
|
|
||||||
private class MusicActionToast : Toast
|
private class MusicActionToast : Toast
|
||||||
{
|
{
|
||||||
public MusicActionToast(string action, string shortcut)
|
public MusicActionToast(string value, GlobalAction action)
|
||||||
: base("Music Playback", action, shortcut)
|
: base("Music Playback", value, action: action)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// 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.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
using osu.Framework.Graphics.Shapes;
|
using osu.Framework.Graphics.Shapes;
|
||||||
|
using osu.Game.Configuration;
|
||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
|
using osu.Game.Input.Bindings;
|
||||||
using osuTK;
|
using osuTK;
|
||||||
using osuTK.Graphics;
|
using osuTK.Graphics;
|
||||||
|
|
||||||
@ -16,12 +19,22 @@ namespace osu.Game.Overlays.OSD
|
|||||||
private const int toast_minimum_width = 240;
|
private const int toast_minimum_width = 240;
|
||||||
|
|
||||||
private readonly Container content;
|
private readonly Container content;
|
||||||
|
|
||||||
|
private readonly OsuSpriteText spriteText;
|
||||||
|
|
||||||
|
private readonly string shortcut;
|
||||||
|
|
||||||
|
private readonly GlobalAction? action;
|
||||||
|
|
||||||
protected override Container<Drawable> Content => content;
|
protected override Container<Drawable> Content => content;
|
||||||
|
|
||||||
protected readonly OsuSpriteText ValueText;
|
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;
|
Anchor = Anchor.Centre;
|
||||||
Origin = Anchor.Centre;
|
Origin = Anchor.Centre;
|
||||||
|
|
||||||
@ -68,7 +81,7 @@ namespace osu.Game.Overlays.OSD
|
|||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
Text = value
|
Text = value
|
||||||
},
|
},
|
||||||
new OsuSpriteText
|
spriteText = new OsuSpriteText
|
||||||
{
|
{
|
||||||
Anchor = Anchor.BottomCentre,
|
Anchor = Anchor.BottomCentre,
|
||||||
Origin = Anchor.BottomCentre,
|
Origin = Anchor.BottomCentre,
|
||||||
@ -76,9 +89,23 @@ namespace osu.Game.Overlays.OSD
|
|||||||
Alpha = 0.3f,
|
Alpha = 0.3f,
|
||||||
Margin = new MarginPadding { Bottom = 15 },
|
Margin = new MarginPadding { Bottom = 15 },
|
||||||
Font = OsuFont.GetFont(size: 12, weight: FontWeight.Bold),
|
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