// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Framework.Graphics.Containers; using osu.Framework.Graphics; using osu.Game.Graphics; using osu.Framework.Graphics.Sprites; using osuTK; using osu.Framework.Bindables; using Humanizer; namespace osu.Game.Overlays.Comments { public class DeletedChildrenPlaceholder : FillFlowContainer { public readonly BindableBool ShowDeleted = new BindableBool(); public readonly BindableInt DeletedCount = new BindableInt(); private bool canBeShown; private readonly SpriteText countText; public DeletedChildrenPlaceholder() { AutoSizeAxes = Axes.Both; Direction = FillDirection.Horizontal; Spacing = new Vector2(3, 0); Margin = new MarginPadding { Vertical = 10, Left = 80 }; Children = new Drawable[] { new SpriteIcon { Icon = FontAwesome.Solid.Trash, Size = new Vector2(14), }, countText = new SpriteText { Font = OsuFont.GetFont(size: 14, weight: FontWeight.Bold, italics: true), } }; } protected override void LoadComplete() { DeletedCount.BindValueChanged(onCountChanged, true); ShowDeleted.BindValueChanged(onShowDeletedChanged, true); base.LoadComplete(); } private void onShowDeletedChanged(ValueChangedEvent showDeleted) { if (canBeShown) this.FadeTo(showDeleted.NewValue ? 0 : 1); } private void onCountChanged(ValueChangedEvent count) { canBeShown = count.NewValue != 0; if (!canBeShown) { Hide(); return; } countText.Text = @"deleted comment".ToQuantity(count.NewValue); Show(); } } }