diff --git a/Glamourer/Gui/Colors.cs b/Glamourer/Gui/Colors.cs index 4b163f9..9206498 100644 --- a/Glamourer/Gui/Colors.cs +++ b/Glamourer/Gui/Colors.cs @@ -29,6 +29,8 @@ public enum ColorId public static class Colors { + public const uint SelectedRed = 0xFF2020D0; + public static (uint DefaultColor, string Name, string Description) Data(this ColorId color) => color switch { diff --git a/Glamourer/Gui/Customization/CustomizationDrawer.Color.cs b/Glamourer/Gui/Customization/CustomizationDrawer.Color.cs index bd7599b..127d8c2 100644 --- a/Glamourer/Gui/Customization/CustomizationDrawer.Color.cs +++ b/Glamourer/Gui/Customization/CustomizationDrawer.Color.cs @@ -3,7 +3,9 @@ using Dalamud.Interface; using Dalamud.Interface.Utility; using Glamourer.Customization; using ImGuiNET; +using OtterGui; using OtterGui.Raii; +using Penumbra.GameData; namespace Glamourer.Gui.Customization; @@ -50,10 +52,10 @@ public partial class CustomizationDrawer ImGui.TextUnformatted(custom.Color == 0 ? $"{_currentOption} (NPC)" : _currentOption); } - DrawColorPickerPopup(); + DrawColorPickerPopup(current); } - private void DrawColorPickerPopup() + private void DrawColorPickerPopup(int current) { using var popup = ImRaii.Popup(ColorPickerPopupName, ImGuiWindowFlags.AlwaysAutoResize); if (!popup) @@ -70,6 +72,13 @@ public partial class CustomizationDrawer ImGui.CloseCurrentPopup(); } + if (i == current) + { + var size = ImGui.GetItemRectSize(); + ImGui.GetWindowDrawList() + .AddCircleFilled(ImGui.GetItemRectMin() + size / 2, size.X / 4, ImGuiUtil.ContrastColorBW(custom.Color)); + } + if (i % 8 != 7) ImGui.SameLine(); } diff --git a/Glamourer/Gui/Customization/CustomizationDrawer.Icon.cs b/Glamourer/Gui/Customization/CustomizationDrawer.Icon.cs index 31d593d..cabd2d5 100644 --- a/Glamourer/Gui/Customization/CustomizationDrawer.Icon.cs +++ b/Glamourer/Gui/Customization/CustomizationDrawer.Icon.cs @@ -1,4 +1,5 @@ using System.Numerics; +using Dalamud.Interface.Utility; using Glamourer.Customization; using ImGuiNET; using OtterGui; @@ -52,10 +53,10 @@ public partial class CustomizationDrawer ImGui.TextUnformatted(label); } - DrawIconPickerPopup(); + DrawIconPickerPopup(current); } - private void DrawIconPickerPopup() + private void DrawIconPickerPopup(int current) { using var popup = ImRaii.Popup(IconSelectorPopup, ImGuiWindowFlags.AlwaysAutoResize); if (!popup) @@ -69,6 +70,8 @@ public partial class CustomizationDrawer var icon = _service.AwaitedService.GetIcon(custom.IconId); using (var _ = ImRaii.Group()) { + using var frameColor = ImRaii.PushColor(ImGuiCol.Button, Colors.SelectedRed, current == i); + if (ImGui.ImageButton(icon.ImGuiHandle, _iconSize)) { UpdateValue(custom.Value); diff --git a/OtterGui b/OtterGui index 62dedf1..a4f9b28 160000 --- a/OtterGui +++ b/OtterGui @@ -1 +1 @@ -Subproject commit 62dedf1fe7c9ee6fd7a0ee342c59f8e976468feb +Subproject commit a4f9b285c82f84ff0841695c0787dbba93afc59b