OfferingWindowOption.xaml.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using System.Linq;
  2. using Content.Client.Computer;
  3. using Content.Client.Stylesheets;
  4. using Content.Client.UserInterface.Controls;
  5. using Content.Shared.CCVar;
  6. using Content.Shared.Parallax.Biomes;
  7. using Content.Shared.Procedural;
  8. using Content.Shared.Salvage;
  9. using Content.Shared.Salvage.Expeditions;
  10. using Content.Shared.Salvage.Expeditions.Modifiers;
  11. using Content.Shared.Shuttles.BUIStates;
  12. using Robust.Client.AutoGenerated;
  13. using Robust.Client.Graphics;
  14. using Robust.Client.UserInterface;
  15. using Robust.Client.UserInterface.Controls;
  16. using Robust.Client.UserInterface.XAML;
  17. using Robust.Shared.Configuration;
  18. using Robust.Shared.Prototypes;
  19. using Robust.Shared.Timing;
  20. using Robust.Shared.Utility;
  21. namespace Content.Client.Salvage.UI;
  22. /// <summary>
  23. /// Generic window for offering multiple selections with a timer.
  24. /// </summary>
  25. [GenerateTypedNameReferences]
  26. public sealed partial class OfferingWindowOption : PanelContainer
  27. {
  28. private bool _claimed;
  29. public string? Title
  30. {
  31. get => TitleStripe.Text;
  32. set => TitleStripe.Text = value;
  33. }
  34. public event Action<BaseButton.ButtonEventArgs>? ClaimPressed;
  35. public OfferingWindowOption()
  36. {
  37. RobustXamlLoader.Load(this);
  38. IoCManager.InjectDependencies(this);
  39. LayoutContainer.SetAnchorPreset(this, LayoutContainer.LayoutPreset.Wide);
  40. BigPanel.PanelOverride = new StyleBoxFlat(new Color(30, 30, 34));
  41. ClaimButton.OnPressed += args =>
  42. {
  43. ClaimPressed?.Invoke(args);
  44. };
  45. }
  46. public void AddContent(Control control)
  47. {
  48. ContentBox.AddChild(control);
  49. }
  50. public bool Disabled
  51. {
  52. get => ClaimButton.Disabled;
  53. set => ClaimButton.Disabled = value;
  54. }
  55. public bool Claimed
  56. {
  57. get => _claimed;
  58. set
  59. {
  60. if (_claimed == value)
  61. return;
  62. _claimed = value;
  63. if (_claimed)
  64. {
  65. ClaimButton.AddStyleClass(StyleBase.ButtonCaution);
  66. ClaimButton.Text = Loc.GetString("offering-window-claimed");
  67. }
  68. else
  69. {
  70. ClaimButton.RemoveStyleClass(StyleBase.ButtonCaution);
  71. ClaimButton.Text = Loc.GetString("offering-window-claim");
  72. }
  73. }
  74. }
  75. }