diff --git a/Penumbra/UI/ChangedItemDrawer.cs b/Penumbra/UI/ChangedItemDrawer.cs index 09f31c99..114b05e8 100644 --- a/Penumbra/UI/ChangedItemDrawer.cs +++ b/Penumbra/UI/ChangedItemDrawer.cs @@ -141,9 +141,9 @@ public class ChangedItemDrawer : IDisposable /// Draw a header line with the different icon types to filter them. public void DrawTypeFilter() { - using var _ = ImRaii.PushId("ChangedItemIconFilter"); - var size = new Vector2(2 * ImGui.GetTextLineHeight()); - using var style = ImRaii.PushStyle(ImGuiStyleVar.ItemSpacing, Vector2.Zero); + using var _ = ImRaii.PushId("ChangedItemIconFilter"); + var size = new Vector2(2 * ImGui.GetTextLineHeight()); + using var style = ImRaii.PushStyle(ImGuiStyleVar.ItemSpacing, Vector2.Zero); var order = new[] { ChangedItemIcon.Head, @@ -184,13 +184,21 @@ public class ChangedItemDrawer : IDisposable } } - foreach (var iconType in order.SkipLast(1)) + foreach (var iconType in order) { DrawIcon(iconType); ImGui.SameLine(); } - DrawIcon(order.Last()); + ImGui.SetCursorPosX(ImGui.GetContentRegionMax().X - size.X); + ImGui.Image(_icons[AllFlags].ImGuiHandle, size, Vector2.Zero, Vector2.One, + _config.ChangedItemFilter == 0 ? new Vector4(0.6f, 0.3f, 0.3f, 1f) : + _config.ChangedItemFilter == AllFlags ? new Vector4(0.75f, 0.75f, 0.75f, 1f) : new Vector4(0.5f, 0.5f, 1f, 1f)); + if (ImGui.IsItemClicked()) + { + _config.ChangedItemFilter = _config.ChangedItemFilter == AllFlags ? 0 : AllFlags; + _config.Save(); + } } /// Obtain the icon category corresponding to a changed item. @@ -327,6 +335,7 @@ public class ChangedItemDrawer : IDisposable Add(ChangedItemIcon.Demihuman, gameData.GetImGuiTexture("ui/icon/062000/062041_hr1.tex")); Add(ChangedItemIcon.Customization, gameData.GetImGuiTexture("ui/icon/062000/062043_hr1.tex")); Add(ChangedItemIcon.Action, gameData.GetImGuiTexture("ui/icon/062000/062001_hr1.tex")); + Add(AllFlags, gameData.GetImGuiTexture("ui/icon/114000/114052_hr1.tex")); var unk = gameData.GetFile("ui/uld/levelup2_hr1.tex"); if (unk == null)