From a70bfca501312bc587c230064a6269b20a714c82 Mon Sep 17 00:00:00 2001 From: Joshua Hegedus Date: Thu, 2 Nov 2023 09:16:25 +0100 Subject: [PATCH] added usergrid for tooltip --- osu.Game/Users/Drawables/ClickableAvatar.cs | 33 ++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/osu.Game/Users/Drawables/ClickableAvatar.cs b/osu.Game/Users/Drawables/ClickableAvatar.cs index 677a8fff36..0ed9f56cc7 100644 --- a/osu.Game/Users/Drawables/ClickableAvatar.cs +++ b/osu.Game/Users/Drawables/ClickableAvatar.cs @@ -3,16 +3,27 @@ using System; using osu.Framework.Allocation; +using osu.Framework.Graphics; +using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Cursor; using osu.Framework.Input.Events; using osu.Framework.Localisation; using osu.Game.Graphics.Containers; using osu.Game.Localisation; using osu.Game.Online.API.Requests.Responses; +using osuTK; namespace osu.Game.Users.Drawables { - public partial class ClickableAvatar : OsuClickableContainer + public partial class ClickableAvatar : OsuClickableContainer, IHasCustomTooltip { + public ITooltip GetCustomTooltip() => new UserGridPanelTooltip(); + + public UserGridPanel TooltipContent => new UserGridPanel(user!) + { + Width = 300 + }; + public override LocalisableString TooltipText { get @@ -67,5 +78,25 @@ protected override bool OnClick(ClickEvent e) return base.OnClick(e); } + + private partial class UserGridPanelTooltip : VisibilityContainer, ITooltip + { + private UserGridPanel? displayedUser; + + protected override void PopIn() + { + Child = displayedUser; + this.FadeIn(20, Easing.OutQuint); + } + + protected override void PopOut() => this.FadeOut(80, Easing.OutQuint); + + public void Move(Vector2 pos) => Position = pos; + + public void SetContent(UserGridPanel userGridPanel) + { + displayedUser = userGridPanel; + } + } } }