using Content.Client.Stylesheets; using Robust.Client.AutoGenerated; using Robust.Client.Graphics; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; namespace Content.Client.Salvage.UI; /// /// Generic window for offering multiple selections with a timer. /// [GenerateTypedNameReferences] public sealed partial class OfferingWindowOption : PanelContainer { private bool _claimed; public string? Title { get => TitleStripe.Text; set => TitleStripe.Text = value; } public event Action? ClaimPressed; public OfferingWindowOption() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); LayoutContainer.SetAnchorPreset(this, LayoutContainer.LayoutPreset.Wide); BigPanel.PanelOverride = new StyleBoxFlat(new Color(30, 30, 34)); ClaimButton.OnPressed += args => { ClaimPressed?.Invoke(args); }; } public void AddContent(Control control) { ContentBox.AddChild(control); } public bool Disabled { get => ClaimButton.Disabled; set => ClaimButton.Disabled = value; } public bool Claimed { get => _claimed; set { if (_claimed == value) return; _claimed = value; if (_claimed) { ClaimButton.AddStyleClass(StyleBase.ButtonCaution); ClaimButton.Text = Loc.GetString("offering-window-claimed"); } else { ClaimButton.RemoveStyleClass(StyleBase.ButtonCaution); ClaimButton.Text = Loc.GetString("offering-window-claim"); } } } }