AdminMessageEui.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Content.Client.Eui;
  2. using Content.Shared.Administration.Notes;
  3. using Content.Shared.Eui;
  4. using JetBrains.Annotations;
  5. using Robust.Client.UserInterface.Controls;
  6. using static Content.Shared.Administration.Notes.AdminMessageEuiMsg;
  7. namespace Content.Client.Administration.UI.AdminRemarks;
  8. [UsedImplicitly]
  9. public sealed class AdminMessageEui : BaseEui
  10. {
  11. private readonly AdminMessagePopupWindow _popup;
  12. public AdminMessageEui()
  13. {
  14. _popup = new AdminMessagePopupWindow();
  15. _popup.OnAcceptPressed += () => SendMessage(new Dismiss(true));
  16. _popup.OnDismissPressed += () => SendMessage(new Dismiss(false));
  17. }
  18. public override void HandleState(EuiStateBase state)
  19. {
  20. if (state is not AdminMessageEuiState s)
  21. {
  22. return;
  23. }
  24. _popup.SetState(s);
  25. }
  26. public override void Opened()
  27. {
  28. _popup.UserInterfaceManager.WindowRoot.AddChild(_popup);
  29. LayoutContainer.SetAnchorPreset(_popup, LayoutContainer.LayoutPreset.Wide);
  30. }
  31. public override void Closed()
  32. {
  33. _popup.Orphan();
  34. }
  35. }