feat: visible pop-out icon button in chat header toolbar

This commit is contained in:
2026-05-03 16:27:28 +02:00
parent 7a6b44048a
commit c882eac1ca
+26
View File
@@ -347,6 +347,11 @@ public sealed class ChatLogWindow : Window
if (Plugin.Config.PreviewPosition is PreviewPosition.Inside) if (Plugin.Config.PreviewPosition is PreviewPosition.Inside)
height -= Plugin.InputPreview.PreviewHeight; height -= Plugin.InputPreview.PreviewHeight;
// Hellion Chat v0.6.1 — subtract the chat header toolbar (single icon
// button) from the message-log height budget so the bottom of the log
// does not get clipped by the new toolbar row.
height -= ImGui.GetFrameHeightWithSpacing();
return height; return height;
} }
@@ -1295,6 +1300,7 @@ public sealed class ChatLogWindow : Window
TabSwitched(tab, previousTab); TabSwitched(tab, previousTab);
tab.Unread = 0; tab.Unread = 0;
DrawChatHeaderToolbar(tab);
DrawMessageLog(tab, PayloadHandler, GetRemainingHeightForMessageLog(), hasTabSwitched); DrawMessageLog(tab, PayloadHandler, GetRemainingHeightForMessageLog(), hasTabSwitched);
} }
@@ -1427,11 +1433,31 @@ public sealed class ChatLogWindow : Window
} }
if (currentTab > -1) if (currentTab > -1)
{
DrawChatHeaderToolbar(Plugin.Config.Tabs[currentTab]);
DrawMessageLog(Plugin.Config.Tabs[currentTab], PayloadHandler, childHeight, hasTabSwitched); DrawMessageLog(Plugin.Config.Tabs[currentTab], PayloadHandler, childHeight, hasTabSwitched);
}
Plugin.WantedTab = null; Plugin.WantedTab = null;
} }
// Hellion Chat v0.6.1 — visible pop-out trigger right above the message
// log so users discover the feature without having to right-click the tab.
// Renders only for the active tab in the main ChatLogWindow; pop-out
// windows have their own render path and skip this toolbar.
private void DrawChatHeaderToolbar(Tab tab)
{
var avail = ImGui.GetContentRegionAvail().X;
var iconWidth = ImGui.GetFrameHeight();
ImGui.SetCursorPosX(ImGui.GetCursorPosX() + avail - iconWidth);
if (ImGuiUtil.IconButton(FontAwesomeIcon.WindowRestore, tooltip: Language.ChatLog_Tabs_PopOut))
{
tab.PopOut = true;
Plugin.SaveConfig();
}
}
private void DrawTabContextMenu(Tab tab, int i) private void DrawTabContextMenu(Tab tab, int i)
{ {
using var contextMenu = ImRaii.ContextPopupItem($"tab-context-menu-{i}"); using var contextMenu = ImRaii.ContextPopupItem($"tab-context-menu-{i}");