36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
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<bool>? OnMicPressed;
|
|
public event Action<bool>? OnSpeakerPressed;
|
|
public event Action<string>? 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();
|
|
}
|
|
}
|