using Content.Client.UserInterface.Controls; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; using Robust.Shared.Timing; namespace Content.Client.Administration.UI.AdminRemarks; [GenerateTypedNameReferences] public sealed partial class AdminMessagePopupWindow : FancyWindow { private float _timer = float.MaxValue; public float Timer { get => _timer; set { WaitLabel.Text = Loc.GetString("admin-notes-message-wait", ("time", MathF.Floor(value))); _timer = value; } } public event Action? OnDismissPressed; public event Action? OnAcceptPressed; public AdminMessagePopupWindow() { RobustXamlLoader.Load(this); AcceptButton.OnPressed += OnAcceptButtonPressed; DismissButton.OnPressed += OnDismissButtonPressed; } public void SetMessage(string message) { MessageLabel.SetMessage(message); } public void SetDetails(string adminName, DateTime addedOn) { AdminLabel.Text = Loc.GetString("admin-notes-message-admin", ("admin", adminName), ("date", addedOn)); } private void OnDismissButtonPressed(BaseButton.ButtonEventArgs obj) { OnDismissPressed?.Invoke(); Close(); } private void OnAcceptButtonPressed(BaseButton.ButtonEventArgs obj) { OnAcceptPressed?.Invoke(); Close(); } protected override void FrameUpdate(FrameEventArgs args) { base.FrameUpdate(args); if (!AcceptButton.Disabled) return; if (Timer > 0.0) { if (Timer - args.DeltaSeconds < 0) Timer = 0; else Timer -= args.DeltaSeconds; } else { AcceptButton.Disabled = false; } } }