diff --git a/HellionChat/Plugin.cs b/HellionChat/Plugin.cs index 6cb47f5..2b58150 100755 --- a/HellionChat/Plugin.cs +++ b/HellionChat/Plugin.cs @@ -64,6 +64,7 @@ public sealed class Plugin : IDalamudPlugin internal TypingIpc TypingIpc { get; } internal FontManager FontManager { get; } internal Themes.ThemeRegistry ThemeRegistry { get; private set; } = null!; + internal Ui.StatusBar StatusBar { get; private set; } = null!; internal int DeferredSaveFrames = -1; @@ -296,6 +297,8 @@ public sealed class Plugin : IDalamudPlugin ThemeRegistry = new Themes.ThemeRegistry(customThemesDir); ThemeRegistry.Switch(Config.Theme); + StatusBar = new Ui.StatusBar(); + MessageManager = new MessageManager(this); // Does it require UI? // Hellion Chat — Auto-Tell-Tabs service. Subscribes to the diff --git a/HellionChat/Ui/ChatLogWindow.cs b/HellionChat/Ui/ChatLogWindow.cs index 99f4083..1c826cf 100644 --- a/HellionChat/Ui/ChatLogWindow.cs +++ b/HellionChat/Ui/ChatLogWindow.cs @@ -375,6 +375,9 @@ public sealed class ChatLogWindow : Window // weil der Cursor schon weiter unten steht — kein eigener Abzug. height -= ImGui.GetFrameHeightWithSpacing(); + // v1.2.0 — Status-Bar am Window-Boden reserviert 22 px + 2 px Spacing. + height -= StatusBar.Height + 2; + return height; } @@ -790,13 +793,17 @@ public sealed class ChatLogWindow : Window if (ImGui.IsWindowHovered(ImGuiHoveredFlags.ChildWindows)) LastActivityTime = FrameTime; - if (!showNovice) - return; + if (showNovice) + { + ImGui.SameLine(); - ImGui.SameLine(); + if (ImGuiUtil.IconButton(FontAwesomeIcon.Leaf)) + GameFunctions.GameFunctions.ClickNoviceNetworkButton(); + } - if (ImGuiUtil.IconButton(FontAwesomeIcon.Leaf)) - GameFunctions.GameFunctions.ClickNoviceNetworkButton(); + // v1.2.0 — Bottom-Status-Bar. Letzter Render-Step in DrawChatLog, + // damit alle Zeilen-Operationen davor keine Layout-Sprünge auslösen. + Plugin.StatusBar.Draw(Plugin); } internal Dictionary GetValidChannels()