diff --git a/ChatTwo/Resources/HellionStrings.Designer.cs b/ChatTwo/Resources/HellionStrings.Designer.cs
index 3f6d3a7..f50e2e8 100644
--- a/ChatTwo/Resources/HellionStrings.Designer.cs
+++ b/ChatTwo/Resources/HellionStrings.Designer.cs
@@ -215,4 +215,10 @@ internal class HellionStrings
internal static string Settings_Appearance_Fonts_Heading => Get(nameof(Settings_Appearance_Fonts_Heading));
internal static string Settings_Appearance_Colours_Heading => Get(nameof(Settings_Appearance_Colours_Heading));
internal static string Settings_Appearance_Timestamps_Heading => Get(nameof(Settings_Appearance_Timestamps_Heading));
+
+ // Hellion Chat — Window-Tab section headings
+ internal static string Settings_Window_Hide_Heading => Get(nameof(Settings_Window_Hide_Heading));
+ internal static string Settings_Window_InactivityHide_Heading => Get(nameof(Settings_Window_InactivityHide_Heading));
+ internal static string Settings_Window_Frame_Heading => Get(nameof(Settings_Window_Frame_Heading));
+ internal static string Settings_Window_Tooltips_Heading => Get(nameof(Settings_Window_Tooltips_Heading));
}
diff --git a/ChatTwo/Resources/HellionStrings.de.resx b/ChatTwo/Resources/HellionStrings.de.resx
index 0598225..2bf579c 100644
--- a/ChatTwo/Resources/HellionStrings.de.resx
+++ b/ChatTwo/Resources/HellionStrings.de.resx
@@ -491,4 +491,18 @@
Zeitstempel
+
+
+
+ Verstecken
+
+
+ Inaktivitäts-Verstecken
+
+
+ Fenster-Rahmen
+
+
+ Tooltips
+
diff --git a/ChatTwo/Resources/HellionStrings.resx b/ChatTwo/Resources/HellionStrings.resx
index f58438d..f14e346 100644
--- a/ChatTwo/Resources/HellionStrings.resx
+++ b/ChatTwo/Resources/HellionStrings.resx
@@ -491,4 +491,18 @@
Timestamps
+
+
+
+ Hide
+
+
+ Inactivity Hide
+
+
+ Window Frame
+
+
+ Tooltips
+
diff --git a/ChatTwo/Ui/SettingsTabs/Window.cs b/ChatTwo/Ui/SettingsTabs/Window.cs
index 480ccf0..109bc78 100644
--- a/ChatTwo/Ui/SettingsTabs/Window.cs
+++ b/ChatTwo/Ui/SettingsTabs/Window.cs
@@ -1,6 +1,5 @@
using ChatTwo.Resources;
using ChatTwo.Util;
-using Dalamud.Interface.Utility;
using Dalamud.Interface.Utility.Raii;
using Dalamud.Bindings.ImGui;
@@ -21,6 +20,144 @@ internal sealed class Window : ISettingsTab
public void Draw(bool changed)
{
- // Settings ziehen in Plan-Task 5 ein.
+ DrawHideSection();
+ ImGui.Spacing();
+ DrawInactivityHideSection();
+ ImGui.Spacing();
+ DrawFrameSection();
+ ImGui.Spacing();
+ DrawTooltipsSection();
+ }
+
+ private void DrawHideSection()
+ {
+ using var tree = ImRaii.TreeNode(HellionStrings.Settings_Window_Hide_Heading);
+ if (!tree.Success)
+ {
+ return;
+ }
+
+ using (ImRaii.PushIndent(ImGui.GetStyle().IndentSpacing, false))
+ {
+ ImGui.Checkbox(Language.Options_HideChat_Name, ref Mutable.HideChat);
+ ImGuiUtil.HelpMarker(Language.Options_HideChat_Description);
+
+ ImGui.Checkbox(Language.Options_HideDuringCutscenes_Name, ref Mutable.HideDuringCutscenes);
+ ImGuiUtil.HelpMarker(string.Format(Language.Options_HideDuringCutscenes_Description, Plugin.PluginName));
+
+ ImGui.Checkbox(Language.Options_HideWhenNotLoggedIn_Name, ref Mutable.HideWhenNotLoggedIn);
+ ImGuiUtil.HelpMarker(string.Format(Language.Options_HideWhenNotLoggedIn_Description, Plugin.PluginName));
+
+ ImGui.Checkbox(Language.Options_HideWhenUiHidden_Name, ref Mutable.HideWhenUiHidden);
+ ImGuiUtil.HelpMarker(string.Format(Language.Options_HideWhenUiHidden_Description, Plugin.PluginName));
+
+ ImGui.Checkbox(Language.Options_HideInLoadingScreens_Name, ref Mutable.HideInLoadingScreens);
+ ImGuiUtil.HelpMarker(string.Format(Language.Options_HideInLoadingScreens_Description, Plugin.PluginName));
+
+ ImGui.Checkbox(Language.Options_HideInBattle_Name, ref Mutable.HideInBattle);
+ ImGuiUtil.HelpMarker(Language.Options_HideInBattle_Description);
+ }
+ }
+
+ private void DrawInactivityHideSection()
+ {
+ using var tree = ImRaii.TreeNode(HellionStrings.Settings_Window_InactivityHide_Heading);
+ if (!tree.Success)
+ {
+ return;
+ }
+
+ using (ImRaii.PushIndent(ImGui.GetStyle().IndentSpacing, false))
+ {
+ ImGui.Checkbox(Language.Options_HideWhenInactive_Name, ref Mutable.HideWhenInactive);
+ ImGuiUtil.HelpMarker(Language.Options_HideWhenInactive_Description);
+
+ if (!Mutable.HideWhenInactive)
+ {
+ return;
+ }
+
+ ImGuiUtil.InputIntVertical(Language.Options_InactivityHideTimeout_Name, Language.Options_InactivityHideTimeout_Description, ref Mutable.InactivityHideTimeout, 1, 10);
+ // Untergrenze von 2 Sekunden gegen Selbst-Soft-Lock.
+ Mutable.InactivityHideTimeout = Math.Max(2, Mutable.InactivityHideTimeout);
+
+ using (ImRaii.Disabled(Mutable.HideInBattle))
+ {
+ ImGui.Checkbox(Language.Options_InactivityHideActiveDuringBattle_Name, ref Mutable.InactivityHideActiveDuringBattle);
+ ImGuiUtil.HelpMarker(Language.Options_InactivityHideActiveDuringBattle_Description);
+ }
+
+ using var channelTree = ImRaii.TreeNode(Language.Options_InactivityHideChannels_Name);
+ if (!channelTree.Success)
+ {
+ return;
+ }
+
+ if (ImGuiUtil.CtrlShiftButton(Language.Options_InactivityHideChannels_All_Label, Language.Options_InactivityHideChannels_Button_Tooltip))
+ {
+ Mutable.InactivityHideChannelsV2 = TabsUtil.AllChannels();
+ Mutable.InactivityHideExtraChatAll = true;
+ Mutable.InactivityHideExtraChatChannels = [];
+ }
+
+ ImGui.SameLine();
+ if (ImGuiUtil.CtrlShiftButton(Language.Options_InactivityHideChannels_None_Label, Language.Options_InactivityHideChannels_Button_Tooltip))
+ {
+ Mutable.InactivityHideChannelsV2 = [];
+ Mutable.InactivityHideExtraChatAll = false;
+ Mutable.InactivityHideExtraChatChannels = [];
+ }
+
+ ImGui.Spacing();
+
+ ImGuiUtil.ChannelSelector(Language.Options_Tabs_Channels, Mutable.InactivityHideChannelsV2);
+ ImGuiUtil.ExtraChatSelector(Language.Options_Tabs_ExtraChatChannels, ref Mutable.InactivityHideExtraChatAll, Mutable.InactivityHideExtraChatChannels);
+ }
+ }
+
+ private void DrawFrameSection()
+ {
+ using var tree = ImRaii.TreeNode(HellionStrings.Settings_Window_Frame_Heading);
+ if (!tree.Success)
+ {
+ return;
+ }
+
+ using (ImRaii.PushIndent(ImGui.GetStyle().IndentSpacing, false))
+ {
+ ImGui.Checkbox(Language.Options_CanMove_Name, ref Mutable.CanMove);
+
+ ImGui.Checkbox(Language.Options_CanResize_Name, ref Mutable.CanResize);
+
+ ImGui.Checkbox(Language.Options_ShowTitleBar_Name, ref Mutable.ShowTitleBar);
+
+ ImGui.Checkbox(Language.Options_ShowPopOutTitleBar_Name, ref Mutable.ShowPopOutTitleBar);
+
+ ImGui.Checkbox(Language.Options_ShowHideButton_Name, ref Mutable.ShowHideButton);
+ ImGuiUtil.HelpMarker(Language.Options_ShowHideButton_Description);
+
+ ImGui.Checkbox(Language.Options_SidebarTabView_Name, ref Mutable.SidebarTabView);
+ ImGuiUtil.HelpMarker(string.Format(Language.Options_SidebarTabView_Description, Plugin.PluginName));
+ }
+ }
+
+ private void DrawTooltipsSection()
+ {
+ using var tree = ImRaii.TreeNode(HellionStrings.Settings_Window_Tooltips_Heading);
+ if (!tree.Success)
+ {
+ return;
+ }
+
+ using (ImRaii.PushIndent(ImGui.GetStyle().IndentSpacing, false))
+ {
+ ImGui.Checkbox(Language.Options_NativeItemTooltips_Name, ref Mutable.NativeItemTooltips);
+ ImGuiUtil.HelpMarker(string.Format(Language.Options_NativeItemTooltips_Description, Plugin.PluginName));
+
+ if (Mutable.NativeItemTooltips)
+ {
+ ImGuiUtil.DragFloatVertical(Language.Options_TooltipOffset_Name, Language.Options_TooltipOffset_Desc, ref Mutable.TooltipOffset, 1, 0f, 400f, $"{Mutable.TooltipOffset:N0}px", ImGuiSliderFlags.AlwaysClamp);
+ }
+ }
}
}