using Content.Client.UserInterface.Controls; using Content.Shared._NC.Radio; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.XAML; using Robust.Shared.Prototypes; namespace Content.Client._NC.Radio.UI; [GenerateTypedNameReferences] public sealed partial class HandheldRadioMenu : FancyWindow { public event Action? OnMicPressed; public event Action? OnSpeakerPressed; public event Action? OnFrequencyChanged; public HandheldRadioMenu() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); MicButton.OnPressed += args => OnMicPressed?.Invoke(args.Button.Pressed); SpeakerButton.OnPressed += args => OnSpeakerPressed?.Invoke(args.Button.Pressed); FrequencyLineEdit.OnTextEntered += e => OnFrequencyChanged?.Invoke(e.Text); FrequencyLineEdit.OnFocusExit += e => OnFrequencyChanged?.Invoke(e.Text); } public void Update(HandheldRadioBoundUIState state) { MicButton.Pressed = state.MicEnabled; SpeakerButton.Pressed = state.SpeakerEnabled; FrequencyLineEdit.Text = state.Frequency.ToString(); } }