// Copyright (c) 2007-2017 ppy Pty Ltd . // 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.Graphics; using osu.Framework.Graphics.Shapes; namespace osu.Game.Graphics.UserInterface { public class OsuPasswordTextBox : OsuTextBox { protected override Drawable GetDrawableCharacter(char c) => new PasswordMaskChar(CalculatedTextSize); public override bool AllowClipboardExport => false; public class PasswordMaskChar : Container { private readonly CircularContainer circle; public PasswordMaskChar(float size) { Size = new Vector2(size / 2, size); Children = new[] { circle = new CircularContainer { Anchor = Anchor.Centre, Origin = Anchor.Centre, Masking = true, Alpha = 0, RelativeSizeAxes = Axes.Both, Size = new Vector2(0.8f, 0), Children = new[] { new Box { Colour = Color4.White, RelativeSizeAxes = Axes.Both, } }, } }; } protected override void LoadComplete() { base.LoadComplete(); circle.FadeIn(500, EasingTypes.OutQuint); circle.ResizeTo(new Vector2(0.8f), 500, EasingTypes.OutQuint); } } } }