mirror of
https://github.com/ppy/osu.git
synced 2025-01-12 15:22:55 +08:00
Add tooltip text for offset adjustment slider
This commit is contained in:
parent
7ee30024e8
commit
3848964faa
@ -29,6 +29,16 @@ namespace osu.Game.Localisation
|
||||
/// </summary>
|
||||
public static LocalisableString CalibrateUsingLastPlay => new TranslatableString(getKey(@"calibrate_using_last_play"), @"Calibrate using last play");
|
||||
|
||||
/// <summary>
|
||||
/// "(hit objects appear later)"
|
||||
/// </summary>
|
||||
public static LocalisableString HitObjectsAppearLater => new TranslatableString(getKey(@"hit_objects_appear_later"), @"(hit objects appear later)");
|
||||
|
||||
/// <summary>
|
||||
/// "(hit objects appear earlier)"
|
||||
/// </summary>
|
||||
public static LocalisableString HitObjectsAppearEarlier => new TranslatableString(getKey(@"hit_objects_appear_earlier"), @"(hit objects appear earlier)");
|
||||
|
||||
private static string getKey(string key) => $@"{prefix}:{key}";
|
||||
}
|
||||
}
|
@ -3,12 +3,14 @@
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Bindables;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Localisation;
|
||||
using osu.Framework.Utils;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Database;
|
||||
@ -71,7 +73,7 @@ namespace osu.Game.Screens.Play.PlayerSettings
|
||||
Spacing = new Vector2(10),
|
||||
Children = new Drawable[]
|
||||
{
|
||||
new PlayerSliderBar<double>
|
||||
new OffsetSliderBar
|
||||
{
|
||||
KeyboardStep = 5,
|
||||
LabelText = BeatmapOffsetControlStrings.BeatmapOffset,
|
||||
@ -88,6 +90,30 @@ namespace osu.Game.Screens.Play.PlayerSettings
|
||||
};
|
||||
}
|
||||
|
||||
public class OffsetSliderBar : PlayerSliderBar<double>
|
||||
{
|
||||
protected override Drawable CreateControl() => new CustomSliderBar();
|
||||
|
||||
protected class CustomSliderBar : SliderBar
|
||||
{
|
||||
protected override LocalisableString GetTooltipText(double value)
|
||||
{
|
||||
return value == 0
|
||||
? new TranslatableString("_", @"{0} ms", base.GetTooltipText(value))
|
||||
: new TranslatableString("_", @"{0} ms {1}", base.GetTooltipText(value), getEarlyLateText(value));
|
||||
}
|
||||
|
||||
private LocalisableString getEarlyLateText(double value)
|
||||
{
|
||||
Debug.Assert(value != 0);
|
||||
|
||||
return value > 0
|
||||
? BeatmapOffsetControlStrings.HitObjectsAppearLater
|
||||
: BeatmapOffsetControlStrings.HitObjectsAppearEarlier;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void LoadComplete()
|
||||
{
|
||||
base.LoadComplete();
|
||||
|
@ -15,13 +15,15 @@ namespace osu.Game.Screens.Play.PlayerSettings
|
||||
{
|
||||
public OsuSliderBar<T> Bar => (OsuSliderBar<T>)Control;
|
||||
|
||||
protected override Drawable CreateControl() => new SliderBar
|
||||
{
|
||||
RelativeSizeAxes = Axes.X
|
||||
};
|
||||
protected override Drawable CreateControl() => new SliderBar();
|
||||
|
||||
private class SliderBar : OsuSliderBar<T>
|
||||
protected class SliderBar : OsuSliderBar<T>
|
||||
{
|
||||
public SliderBar()
|
||||
{
|
||||
RelativeSizeAxes = Axes.X;
|
||||
}
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(OsuColour colours)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user