mirror of
https://github.com/ppy/osu.git
synced 2024-11-09 02:47:28 +08:00
208f66cc76
The same tooltip can be used for the rank graph, the play history graph, and the replay history graph. The only difference between those three is the displayed label, which has now been included as part of the `TooltipContent`, rather than unnecessarily recreating tooltips just for different sprite texts.
39 lines
1.3 KiB
C#
39 lines
1.3 KiB
C#
// 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 System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using JetBrains.Annotations;
|
|
using osu.Framework.Extensions.LocalisationExtensions;
|
|
using osu.Framework.Localisation;
|
|
using static osu.Game.Users.User;
|
|
|
|
namespace osu.Game.Overlays.Profile.Sections.Historical
|
|
{
|
|
public class UserHistoryGraph : UserGraph<DateTime, long>
|
|
{
|
|
private readonly LocalisableString tooltipCounterName;
|
|
|
|
[CanBeNull]
|
|
public UserHistoryCount[] Values
|
|
{
|
|
set => Data = value?.Select(v => new KeyValuePair<DateTime, long>(v.Date, v.Count)).ToArray();
|
|
}
|
|
|
|
public UserHistoryGraph(LocalisableString tooltipCounterName)
|
|
{
|
|
this.tooltipCounterName = tooltipCounterName;
|
|
}
|
|
|
|
protected override float GetDataPointHeight(long playCount) => playCount;
|
|
|
|
protected override UserGraphTooltipContent GetTooltipContent(DateTime date, long playCount) => new UserGraphTooltipContent
|
|
{
|
|
Name = tooltipCounterName,
|
|
Count = playCount.ToLocalisableString("N0"),
|
|
Time = date.ToLocalisableString("MMMM yyyy")
|
|
};
|
|
}
|
|
}
|