From 92f1736ea96ea5ee9877141ac6d12faec499cfc8 Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Sun, 31 May 2026 00:36:09 +0200 Subject: [PATCH] feat(settings): add world suffix and name format combos to the chat tab --- .../Ui/Components/Settings/Tabs/ChatTab.cs | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/HellionChat/Ui/Components/Settings/Tabs/ChatTab.cs b/HellionChat/Ui/Components/Settings/Tabs/ChatTab.cs index b758b79..e777039 100644 --- a/HellionChat/Ui/Components/Settings/Tabs/ChatTab.cs +++ b/HellionChat/Ui/Components/Settings/Tabs/ChatTab.cs @@ -1,5 +1,7 @@ using Dalamud.Bindings.ImGui; using HellionChat.Code; +using HellionChat.Resources; +using HellionChat.Util; namespace HellionChat.Ui.Components.Settings.Tabs; @@ -36,6 +38,8 @@ internal sealed class ChatTab () => Plugin.Config.HideSameTimestamps, v => Plugin.Config.HideSameTimestamps = v ); + DrawWorldSuffixCombo(); + DrawNameFormCombo(); } if (ImGui.CollapsingHeader("Channel filter")) @@ -101,6 +105,68 @@ internal sealed class ChatTab } } + private void DrawWorldSuffixCombo() + { + var current = Plugin.Config.WorldSuffixMode; + var values = Enum.GetValues(); + var labels = new string[values.Length]; + var selected = 0; + for (var i = 0; i < values.Length; i++) + { + labels[i] = values[i].Name(); + if (values[i] == current) + { + selected = i; + } + } + + ImGui.SetNextItemWidth(200); + if ( + ImGui.Combo( + HellionStrings.Settings_Chat_WorldSuffix_Name, + ref selected, + labels, + labels.Length + ) + ) + { + Plugin.Config.WorldSuffixMode = values[selected]; + _plugin.SaveConfig(); + } + ImGuiUtil.HelpMarker(HellionStrings.Settings_Chat_WorldSuffix_Description); + } + + private void DrawNameFormCombo() + { + var current = Plugin.Config.NameFormMode; + var values = Enum.GetValues(); + var labels = new string[values.Length]; + var selected = 0; + for (var i = 0; i < values.Length; i++) + { + labels[i] = values[i].Name(); + if (values[i] == current) + { + selected = i; + } + } + + ImGui.SetNextItemWidth(200); + if ( + ImGui.Combo( + HellionStrings.Settings_Chat_NameForm_Name, + ref selected, + labels, + labels.Length + ) + ) + { + Plugin.Config.NameFormMode = values[selected]; + _plugin.SaveConfig(); + } + ImGuiUtil.HelpMarker(HellionStrings.Settings_Chat_NameForm_Description); + } + private void DrawToggle(string label, Func get, Action set) { var current = get();