using Content.Client.UserInterface.Controls; using Content.Shared.Administration; namespace Content.Client.Administration; /// /// This handles the client portion of quick dialogs. /// public sealed class QuickDialogSystem : EntitySystem { /// public override void Initialize() { SubscribeNetworkEvent(OpenDialog); } private void OpenDialog(QuickDialogOpenEvent ev) { var ok = (ev.Buttons & QuickDialogButtonFlag.OkButton) != 0; var cancel = (ev.Buttons & QuickDialogButtonFlag.CancelButton) != 0; var window = new DialogWindow(ev.Title, ev.Prompts, ok: ok, cancel: cancel); window.OnConfirmed += responses => { RaiseNetworkEvent(new QuickDialogResponseEvent(ev.DialogId, responses, QuickDialogButtonFlag.OkButton)); }; window.OnCancelled += () => { RaiseNetworkEvent(new QuickDialogResponseEvent(ev.DialogId, new(), QuickDialogButtonFlag.CancelButton)); }; } }