1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-21 05:02:56 +08:00

allow hover to expand ModCustomisationPanel

This commit is contained in:
Caiyi Shyu 2024-07-26 22:44:50 +08:00
parent c90e04092a
commit 0cc6818b21
2 changed files with 37 additions and 0 deletions

View File

@ -8,6 +8,7 @@ using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.Events;
using osu.Game.Graphics;
using osu.Game.Graphics.Containers;
using osu.Game.Graphics.Sprites;
@ -28,6 +29,8 @@ namespace osu.Game.Overlays.Mods
public readonly BindableBool Expanded = new BindableBool();
protected new ModCustomisationPanel Parent => (ModCustomisationPanel)base.Parent;
public ModCustomisationHeader()
{
Action = Expanded.Toggle;
@ -91,5 +94,15 @@ namespace osu.Game.Overlays.Mods
icon.ScaleTo(v.NewValue ? new Vector2(1, -1) : Vector2.One, 300, Easing.OutQuint);
}, true);
}
protected override bool OnHover(HoverEvent e)
{
if (Enabled.Value)
{
Parent.UpdateHoverExpansion(true);
}
return base.OnHover(e);
}
}
}

View File

@ -175,6 +175,22 @@ namespace osu.Game.Overlays.Mods
content.ResizeHeightTo(header_height, 400, Easing.OutQuint);
content.FadeOut(400, Easing.OutSine);
}
expandedByHovering = false;
}
private bool expandedByHovering = false;
public void UpdateHoverExpansion(bool hovered)
{
if (hovered && !Expanded.Value)
{
Expanded.Value = true;
expandedByHovering = true;
}
else if (!hovered && expandedByHovering)
{
Expanded.Value = false;
}
}
private void updateMods()
@ -206,6 +222,14 @@ namespace osu.Game.Overlays.Mods
public override bool RequestsFocus => Expanded.Value;
public override bool AcceptsFocus => Expanded.Value;
public new ModCustomisationPanel Parent => (ModCustomisationPanel)base.Parent;
protected override void OnHoverLost(HoverLostEvent e)
{
Parent.UpdateHoverExpansion(false);
base.OnHoverLost(e);
}
}
}
}