using Content.Client.Chat.TypingIndicator; using Content.Shared._DV.AACTablet; using Content.Shared._DV.QuickPhrase; using Content.Shared.Chat.TypingIndicator; using Robust.Client.UserInterface; using Robust.Shared.Prototypes; namespace Content.Client._DV.AACTablet.UI; public sealed class AACBoundUserInterface : BoundUserInterface { [ViewVariables] private AACWindow? _window; private static readonly ProtoId AACTypingIndicator = "aac"; private TypingIndicatorSystem? _typing; public AACBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) { } protected override void Open() { base.Open(); _window?.Close(); _window = this.CreateWindow(); _window.PhraseButtonPressed += OnPhraseButtonPressed; _window.Typing += OnTyping; _window.SubmitPressed += OnSubmit; } private void OnPhraseButtonPressed(List> phraseId) { SendMessage(new AACTabletSendPhraseMessage(phraseId)); } private void OnTyping() { _typing ??= EntMan.System(); _typing?.ClientAlternateTyping(AACTypingIndicator); } private void OnSubmit() { _typing ??= EntMan.System(); _typing?.ClientSubmittedChatText(); } }