feat(settings-refactor): populate Window tab with hide, inactivity, frame, tooltips
This commit is contained in:
+6
@@ -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_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_Colours_Heading => Get(nameof(Settings_Appearance_Colours_Heading));
|
||||||
internal static string Settings_Appearance_Timestamps_Heading => Get(nameof(Settings_Appearance_Timestamps_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));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -491,4 +491,18 @@
|
|||||||
<data name="Settings_Appearance_Timestamps_Heading" xml:space="preserve">
|
<data name="Settings_Appearance_Timestamps_Heading" xml:space="preserve">
|
||||||
<value>Zeitstempel</value>
|
<value>Zeitstempel</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
|
<!-- Hellion Chat — Sektions-Überschriften des Fenster-Tabs -->
|
||||||
|
<data name="Settings_Window_Hide_Heading" xml:space="preserve">
|
||||||
|
<value>Verstecken</value>
|
||||||
|
</data>
|
||||||
|
<data name="Settings_Window_InactivityHide_Heading" xml:space="preserve">
|
||||||
|
<value>Inaktivitäts-Verstecken</value>
|
||||||
|
</data>
|
||||||
|
<data name="Settings_Window_Frame_Heading" xml:space="preserve">
|
||||||
|
<value>Fenster-Rahmen</value>
|
||||||
|
</data>
|
||||||
|
<data name="Settings_Window_Tooltips_Heading" xml:space="preserve">
|
||||||
|
<value>Tooltips</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -491,4 +491,18 @@
|
|||||||
<data name="Settings_Appearance_Timestamps_Heading" xml:space="preserve">
|
<data name="Settings_Appearance_Timestamps_Heading" xml:space="preserve">
|
||||||
<value>Timestamps</value>
|
<value>Timestamps</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
|
<!-- Hellion Chat — Window-Tab section headings -->
|
||||||
|
<data name="Settings_Window_Hide_Heading" xml:space="preserve">
|
||||||
|
<value>Hide</value>
|
||||||
|
</data>
|
||||||
|
<data name="Settings_Window_InactivityHide_Heading" xml:space="preserve">
|
||||||
|
<value>Inactivity Hide</value>
|
||||||
|
</data>
|
||||||
|
<data name="Settings_Window_Frame_Heading" xml:space="preserve">
|
||||||
|
<value>Window Frame</value>
|
||||||
|
</data>
|
||||||
|
<data name="Settings_Window_Tooltips_Heading" xml:space="preserve">
|
||||||
|
<value>Tooltips</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using ChatTwo.Resources;
|
using ChatTwo.Resources;
|
||||||
using ChatTwo.Util;
|
using ChatTwo.Util;
|
||||||
using Dalamud.Interface.Utility;
|
|
||||||
using Dalamud.Interface.Utility.Raii;
|
using Dalamud.Interface.Utility.Raii;
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
|
|
||||||
@@ -21,6 +20,144 @@ internal sealed class Window : ISettingsTab
|
|||||||
|
|
||||||
public void Draw(bool changed)
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user