diff --git a/HellionChat/Resources/HellionStrings.Designer.cs b/HellionChat/Resources/HellionStrings.Designer.cs
index 1402a1d..784a394 100644
--- a/HellionChat/Resources/HellionStrings.Designer.cs
+++ b/HellionChat/Resources/HellionStrings.Designer.cs
@@ -276,6 +276,11 @@ internal class HellionStrings
internal static string Tabs_Presets_Linkshell => Get(nameof(Tabs_Presets_Linkshell));
internal static string Tabs_Presets_Linkshell_Hint => Get(nameof(Tabs_Presets_Linkshell_Hint));
+ // Hellion Chat — v1.2.0 per-tab icon override
+ internal static string Tabs_Icon_Label => Get(nameof(Tabs_Icon_Label));
+ internal static string Tabs_Icon_HelpMarker => Get(nameof(Tabs_Icon_HelpMarker));
+ internal static string Tabs_Icon_DefaultOption => Get(nameof(Tabs_Icon_DefaultOption));
+
// Hellion Chat — v0.6.0 chat colour presets (display labels)
internal static string ChatColourPresets_Default => Get(nameof(ChatColourPresets_Default));
internal static string ChatColourPresets_HighContrast => Get(nameof(ChatColourPresets_HighContrast));
diff --git a/HellionChat/Resources/HellionStrings.de.resx b/HellionChat/Resources/HellionStrings.de.resx
index 9b9c9bf..6957f51 100644
--- a/HellionChat/Resources/HellionStrings.de.resx
+++ b/HellionChat/Resources/HellionStrings.de.resx
@@ -561,6 +561,17 @@
Wenn du mehrere Linkshells benutzt, empfiehlt der Maintainer einen Tab pro Shell für eine sauberere Übersicht. Tab duplizieren und je Kopie die Kanalauswahl einschränken.
+
+
+
+ Tab-Icon
+
+
+ FontAwesome-Glyph für die Sidebar. Default greift auf Tab-Name oder Channel-Typ.
+
+
+ (Default-Mapping)
+
Klassik (Chat 2 Default)
diff --git a/HellionChat/Resources/HellionStrings.resx b/HellionChat/Resources/HellionStrings.resx
index edba1d7..67a1f16 100644
--- a/HellionChat/Resources/HellionStrings.resx
+++ b/HellionChat/Resources/HellionStrings.resx
@@ -561,6 +561,17 @@
If you use multiple linkshells, the maintainer recommends one tab per shell for cleaner readability. Duplicate this tab and narrow the channel selection per copy.
+
+
+
+ Tab-Icon
+
+
+ FontAwesome-Glyph für die Sidebar. Default greift auf Tab-Name oder Channel-Typ.
+
+
+ (Default-Mapping)
+
Klassik (Chat 2 Default)
diff --git a/HellionChat/Ui/SettingsTabs/Tabs.cs b/HellionChat/Ui/SettingsTabs/Tabs.cs
index 8ad2bb0..75eea88 100755
--- a/HellionChat/Ui/SettingsTabs/Tabs.cs
+++ b/HellionChat/Ui/SettingsTabs/Tabs.cs
@@ -91,6 +91,40 @@ internal sealed class Tabs : ISettingsTab
}
ImGui.InputText(Language.Options_Tabs_Name, ref tab.Name, 512, ImGuiInputTextFlags.EnterReturnsTrue);
+
+ // v1.2.0 — Per-Tab Icon-Override. Default-Mapping greift falls nichts gesetzt.
+ ImGui.TextUnformatted(HellionStrings.Tabs_Icon_Label);
+ ImGui.SameLine();
+ ImGuiUtil.HelpMarker(HellionStrings.Tabs_Icon_HelpMarker);
+
+ var iconCurrent = string.IsNullOrEmpty(tab.Icon) ? "" : tab.Icon;
+ var iconPreview = iconCurrent.Length == 0
+ ? HellionStrings.Tabs_Icon_DefaultOption
+ : iconCurrent;
+ using (var combo = ImRaii.Combo($"##icon-{i}", iconPreview))
+ {
+ if (combo.Success)
+ {
+ // Erste Option: Default (löscht Icon, lässt Mapping greifen).
+ if (ImGui.Selectable(HellionStrings.Tabs_Icon_DefaultOption, iconCurrent.Length == 0))
+ {
+ tab.Icon = null;
+ }
+
+ ImGui.Separator();
+
+ // Pool-Optionen aus TabIconGlyphResolver.PickerOptions (Single-Source-of-Truth).
+ foreach (var option in TabIconGlyphResolver.PickerOptions)
+ {
+ var isSelected = string.Equals(iconCurrent, option, StringComparison.OrdinalIgnoreCase);
+ if (ImGui.Selectable(option, isSelected))
+ {
+ tab.Icon = option;
+ }
+ }
+ }
+ }
+
ImGui.Checkbox(Language.Options_Tabs_ShowTimestamps, ref tab.DisplayTimestamp);
ImGui.Checkbox(Language.Options_Tabs_PopOut, ref tab.PopOut);
if (tab.PopOut)