diff --git a/osu.Game/Graphics/Sprites/OsuLinkSpriteText.cs b/osu.Game/Graphics/Sprites/OsuLinkSpriteText.cs new file mode 100644 index 0000000000..111ba6a49a --- /dev/null +++ b/osu.Game/Graphics/Sprites/OsuLinkSpriteText.cs @@ -0,0 +1,55 @@ +// Copyright (c) 2007-2017 ppy Pty Ltd . +// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE + +using OpenTK.Graphics; +using osu.Framework.Allocation; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; +using osu.Framework.Input; +using osu.Game.Graphics.Containers; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace osu.Game.Graphics.Sprites +{ + public class OsuLinkSpriteText : OsuSpriteText + { + private readonly OsuHoverContainer content; + + public override bool HandleInput => content.Action != null; + + protected override Container Content => content ?? (Container)this; + + protected override IEnumerable FlowingChildren => Children; + + private string url; + + public string Url + { + get + { + return url; + } + set + { + if (value != null) + { + url = value; + content.Action = () => Process.Start(value); + } + } + } + + public OsuLinkSpriteText() + { + AddInternal(content = new OsuHoverContainer + { + AutoSizeAxes = Axes.Both, + }); + } + } +}