1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-15 14:12:54 +08:00

Allow for difficulty icon to contain content

This commit is contained in:
iiSaLMaN 2019-08-23 23:11:36 +03:00
parent 8bed4a407a
commit f639df849f

View File

@ -19,23 +19,33 @@ using osuTK.Graphics;
namespace osu.Game.Beatmaps.Drawables namespace osu.Game.Beatmaps.Drawables
{ {
public class DifficultyIcon : Container, IHasCustomTooltip public class DifficultyIcon : CompositeDrawable, IHasCustomTooltip
{ {
private readonly BeatmapInfo beatmap; private readonly BeatmapInfo beatmap;
private readonly RulesetInfo ruleset; private readonly RulesetInfo ruleset;
private readonly Container iconContainer;
/// <summary>
/// Size of this difficulty icon.
/// </summary>
public new Vector2 Size
{
get => iconContainer.Size;
set => iconContainer.Size = value;
}
public DifficultyIcon(BeatmapInfo beatmap, RulesetInfo ruleset = null, bool shouldShowTooltip = true) public DifficultyIcon(BeatmapInfo beatmap, RulesetInfo ruleset = null, bool shouldShowTooltip = true)
{ {
if (beatmap == null) this.beatmap = beatmap ?? throw new ArgumentNullException(nameof(beatmap));
throw new ArgumentNullException(nameof(beatmap));
this.beatmap = beatmap;
this.ruleset = ruleset ?? beatmap.Ruleset; this.ruleset = ruleset ?? beatmap.Ruleset;
if (shouldShowTooltip) if (shouldShowTooltip)
TooltipContent = beatmap; TooltipContent = beatmap;
Size = new Vector2(20); AutoSizeAxes = Axes.Both;
InternalChild = iconContainer = new Container { Size = new Vector2(20f) };
} }
public string TooltipText { get; set; } public string TooltipText { get; set; }
@ -47,7 +57,7 @@ namespace osu.Game.Beatmaps.Drawables
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(OsuColour colours) private void load(OsuColour colours)
{ {
Children = new Drawable[] iconContainer.Children = new Drawable[]
{ {
new CircularContainer new CircularContainer
{ {