mirror of
https://github.com/ppy/osu.git
synced 2024-11-14 17:57:38 +08:00
Merge pull request #1189 from jorolf/caps-warning
Add caps lock warning to OsuPasswordTextBox
This commit is contained in:
commit
5e6c11e289
@ -1,11 +1,16 @@
|
|||||||
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
using osu.Framework.Graphics;
|
|
||||||
using osu.Framework.Graphics.Containers;
|
|
||||||
using OpenTK;
|
using OpenTK;
|
||||||
using OpenTK.Graphics;
|
using OpenTK.Graphics;
|
||||||
|
using OpenTK.Input;
|
||||||
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Framework.Graphics.Containers;
|
||||||
|
using osu.Framework.Graphics.Cursor;
|
||||||
using osu.Framework.Graphics.Shapes;
|
using osu.Framework.Graphics.Shapes;
|
||||||
|
using osu.Framework.Input;
|
||||||
|
using osu.Framework.Platform;
|
||||||
|
|
||||||
namespace osu.Game.Graphics.UserInterface
|
namespace osu.Game.Graphics.UserInterface
|
||||||
{
|
{
|
||||||
@ -15,6 +20,49 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
|
|
||||||
public override bool AllowClipboardExport => false;
|
public override bool AllowClipboardExport => false;
|
||||||
|
|
||||||
|
private readonly CapsWarning warning;
|
||||||
|
|
||||||
|
private GameHost host;
|
||||||
|
|
||||||
|
public OsuPasswordTextBox()
|
||||||
|
{
|
||||||
|
Add(warning = new CapsWarning
|
||||||
|
{
|
||||||
|
Size = new Vector2(20),
|
||||||
|
Origin = Anchor.CentreRight,
|
||||||
|
Anchor = Anchor.CentreRight,
|
||||||
|
Margin = new MarginPadding { Right = 10 },
|
||||||
|
Alpha = 0,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load(GameHost host)
|
||||||
|
{
|
||||||
|
this.host = host;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args)
|
||||||
|
{
|
||||||
|
if (args.Key == Key.CapsLock)
|
||||||
|
updateCapsWarning(host.CapsLockEnabled);
|
||||||
|
return base.OnKeyDown(state, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnFocus(InputState state)
|
||||||
|
{
|
||||||
|
updateCapsWarning(host.CapsLockEnabled);
|
||||||
|
base.OnFocus(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnFocusLost(InputState state)
|
||||||
|
{
|
||||||
|
updateCapsWarning(false);
|
||||||
|
base.OnFocusLost(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateCapsWarning(bool visible) => warning.FadeTo(visible ? 1 : 0, 250, Easing.OutQuint);
|
||||||
|
|
||||||
public class PasswordMaskChar : Container
|
public class PasswordMaskChar : Container
|
||||||
{
|
{
|
||||||
private readonly CircularContainer circle;
|
private readonly CircularContainer circle;
|
||||||
@ -51,5 +99,21 @@ namespace osu.Game.Graphics.UserInterface
|
|||||||
circle.ResizeTo(new Vector2(0.8f), 500, Easing.OutQuint);
|
circle.ResizeTo(new Vector2(0.8f), 500, Easing.OutQuint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class CapsWarning : SpriteIcon, IHasTooltip
|
||||||
|
{
|
||||||
|
public string TooltipText => @"Caps lock is active";
|
||||||
|
|
||||||
|
public CapsWarning()
|
||||||
|
{
|
||||||
|
Icon = FontAwesome.fa_warning;
|
||||||
|
}
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load(OsuColour colour)
|
||||||
|
{
|
||||||
|
Colour = colour.YellowLight;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user