Files
tbd-station-14/Content.Client/MachineLinking/UI/SignalPortSelectorMenu.xaml.cs
2022-02-16 18:23:23 +11:00

37 lines
1.1 KiB
C#

using System.Collections.Generic;
using Content.Shared.MachineLinking;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.MachineLinking.UI
{
[GenerateTypedNameReferences]
public sealed partial class SignalPortSelectorMenu : DefaultWindow
{
private SignalPortSelectorBoundUserInterface _bui;
public SignalPortSelectorMenu(SignalPortSelectorBoundUserInterface boundUserInterface)
{
RobustXamlLoader.Load(this);
_bui = boundUserInterface;
}
public void UpdateState(SignalPortsState state)
{
ButtonContainer.Clear();
foreach (var port in state.Ports)
{
var portBtn = new ItemList.Item(ButtonContainer)
{
Text = port.Key,
Disabled = !port.Value
};
portBtn.OnSelected += _ => _bui.OnPortSelected(port.Key);
ButtonContainer.Add(portBtn);
}
}
}
}