1
0

QuickDialogSystem.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Content.Client.UserInterface.Controls;
  2. using Content.Shared.Administration;
  3. namespace Content.Client.Administration;
  4. /// <summary>
  5. /// This handles the client portion of quick dialogs.
  6. /// </summary>
  7. public sealed class QuickDialogSystem : EntitySystem
  8. {
  9. /// <inheritdoc/>
  10. public override void Initialize()
  11. {
  12. SubscribeNetworkEvent<QuickDialogOpenEvent>(OpenDialog);
  13. }
  14. private void OpenDialog(QuickDialogOpenEvent ev)
  15. {
  16. var ok = (ev.Buttons & QuickDialogButtonFlag.OkButton) != 0;
  17. var cancel = (ev.Buttons & QuickDialogButtonFlag.CancelButton) != 0;
  18. var window = new DialogWindow(ev.Title, ev.Prompts, ok: ok, cancel: cancel);
  19. window.OnConfirmed += responses =>
  20. {
  21. RaiseNetworkEvent(new QuickDialogResponseEvent(ev.DialogId,
  22. responses,
  23. QuickDialogButtonFlag.OkButton));
  24. };
  25. window.OnCancelled += () =>
  26. {
  27. RaiseNetworkEvent(new QuickDialogResponseEvent(ev.DialogId,
  28. new(),
  29. QuickDialogButtonFlag.CancelButton));
  30. };
  31. }
  32. }