// If any conflicts exist, show them in this tab. private unsafe void DrawConflictsTab() { using var tab = DrawTab(ConflictTabHeader, Tabs.Conflicts); if (!tab) { return; } using var box = ImRaii.ListBox("##conflicts", -Vector2.One); if (!box) { return; } foreach (var conflict in Penumbra.CollectionManager.Current.Conflicts(_mod)) { if (ImGui.Selectable(conflict.Mod2.Name) && conflict.Mod2 is Mod mod) { _window._selector.SelectByValue(mod); } ImGui.SameLine(); using (var color = ImRaii.PushColor(ImGuiCol.Text, conflict.HasPriority ? ColorId.HandledConflictMod.Value() : ColorId.ConflictingMod.Value())) { var priority = conflict.Mod2.Index < 0 ? conflict.Mod2.Priority : Penumbra.CollectionManager.Current[conflict.Mod2.Index].Settings !.Priority; ImGui.TextUnformatted($"(Priority {priority})"); } using var indent = ImRaii.PushIndent(30f); foreach (var data in conflict.Conflicts) { var _ = data switch { Utf8GamePath p => ImGuiNative.igSelectable_Bool(p.Path.Path, 0, ImGuiSelectableFlags.None, Vector2.Zero) > 0, MetaManipulation m => ImGui.Selectable(m.Manipulation?.ToString() ?? string.Empty), _ => false, }; } } }