From 8151b6607681795b8c68d276328f93c4994fb12a Mon Sep 17 00:00:00 2001 From: Anna Clemens Date: Mon, 5 Sep 2022 04:35:28 -0400 Subject: [PATCH] show modal --- client/PluginUi.cs | 12 +++++++++--- client/Ui/MainWindowTabs/Settings.cs | 6 +++--- client/Ui/MainWindowTabs/Write.cs | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/client/PluginUi.cs b/client/PluginUi.cs index 01a71bc..981b42b 100644 --- a/client/PluginUi.cs +++ b/client/PluginUi.cs @@ -11,6 +11,7 @@ public class PluginUi : IDisposable { internal ViewerButton ViewerButton { get; } private List<(string, string)> Modals { get; } = new(); + private Queue ToShow { get; } = new(); internal PluginUi(Plugin plugin) { this.Plugin = plugin; @@ -33,6 +34,10 @@ public class PluginUi : IDisposable { } private void DrawModals() { + while (this.ToShow.TryDequeue(out var toShow)) { + ImGui.OpenPopup(toShow); + } + var toRemove = -1; for (var i = 0; i < this.Modals.Count; i++) { var (id, text) = this.Modals[i]; @@ -57,11 +62,12 @@ public class PluginUi : IDisposable { } } - internal void AddModal(string text) { - this.AddModal(Guid.NewGuid().ToString(), text); + internal void ShowModal(string text) { + this.ShowModal(Guid.NewGuid().ToString(), text); } - internal void AddModal(string id, string text) { + internal void ShowModal(string id, string text) { this.Modals.Add((id, text)); + this.ToShow.Enqueue(id); } } diff --git a/client/Ui/MainWindowTabs/Settings.cs b/client/Ui/MainWindowTabs/Settings.cs index 1e33ae9..c1ace84 100644 --- a/client/Ui/MainWindowTabs/Settings.cs +++ b/client/Ui/MainWindowTabs/Settings.cs @@ -54,12 +54,12 @@ internal class Settings : ITab { var text = await resp.Content.ReadAsStringAsync(); if (uint.TryParse(text, out var extra)) { this.Plugin.Ui.MainWindow.ExtraMessages = extra; - this.Plugin.Ui.AddModal($"Code claimed.\n\nYou can now post up to {10 + extra:N0} messages."); + this.Plugin.Ui.ShowModal($"Code claimed.\n\nYou can now post up to {10 + extra:N0} messages."); } else { - this.Plugin.Ui.AddModal("Code claimed but the server gave an unexpected response."); + this.Plugin.Ui.ShowModal("Code claimed but the server gave an unexpected response."); } } else { - this.Plugin.Ui.AddModal("Invalid code."); + this.Plugin.Ui.ShowModal("Invalid code."); } }); } diff --git a/client/Ui/MainWindowTabs/Write.cs b/client/Ui/MainWindowTabs/Write.cs index f0444c0..814c774 100644 --- a/client/Ui/MainWindowTabs/Write.cs +++ b/client/Ui/MainWindowTabs/Write.cs @@ -189,7 +189,7 @@ internal class Write : ITab { this.Plugin.Ui.MainWindow.Visible = false; } else { var error = JsonConvert.DeserializeObject(content); - this.Plugin.Ui.AddModal($"Error writing message.\n\nMessage from server:\n{error?.Message}"); + this.Plugin.Ui.ShowModal($"Error writing message.\n\nMessage from server:\n{error?.Message}"); } }); }