Files
2026-11-01 23:39:55 +02:00

68 lines
2.6 KiB
C#

using Codice.CM.Client.Differences;
using MergetoolGui;
using UnityEditor;
using UnityEngine;
using XDiffGui.Options;
namespace Unity.PlasticSCM.Editor.Diff.Text
{
internal class ComparisonMethodMenu
{
internal ComparisonMethodMenu(
IComparisonMethodListener comparisonMethodListener)
{
mComparisonMethodListener = comparisonMethodListener;
}
internal void SetComparisonMethod(ComparisonMethodTypes comparisonMethod)
{
mCurrentComparisonMethod = comparisonMethod;
}
internal void UpdateIsCheckedValueForMenuItems(
ComparisonMethodTypes comparisonMethod)
{
mCurrentComparisonMethod = comparisonMethod;
}
internal void BuildMenuItems(GenericMenu menu, string submenuPath)
{
menu.AddItem(
new GUIContent(submenuPath + MergetoolLocalization.GetString(
MergetoolLocalization.Name.IgnoreEol)),
mCurrentComparisonMethod == ComparisonMethodTypes.IgnoreEol,
() => ComparisonMethodMenuItem_Click(ComparisonMethodTypes.IgnoreEol));
menu.AddItem(
new GUIContent(submenuPath + MergetoolLocalization.GetString(
MergetoolLocalization.Name.IgnoreWhitespace)),
mCurrentComparisonMethod == ComparisonMethodTypes.IgnoreWhiteSpaces,
() => ComparisonMethodMenuItem_Click(ComparisonMethodTypes.IgnoreWhiteSpaces));
menu.AddItem(
new GUIContent(submenuPath + MergetoolLocalization.GetString(
MergetoolLocalization.Name.IgnoreEolWhitespace)),
mCurrentComparisonMethod == ComparisonMethodTypes.IgnoreEolWhiteSpaces,
() => ComparisonMethodMenuItem_Click(ComparisonMethodTypes.IgnoreEolWhiteSpaces));
menu.AddSeparator(submenuPath);
menu.AddItem(
new GUIContent(submenuPath + MergetoolLocalization.GetString(
MergetoolLocalization.Name.RecognizeAll)),
mCurrentComparisonMethod == ComparisonMethodTypes.NotIgnore,
() => ComparisonMethodMenuItem_Click(ComparisonMethodTypes.NotIgnore));
}
void ComparisonMethodMenuItem_Click(ComparisonMethodTypes comparisonMethod)
{
mCurrentComparisonMethod = comparisonMethod;
mComparisonMethodListener.OnComparisonMethodChanged(comparisonMethod);
}
ComparisonMethodTypes mCurrentComparisonMethod;
readonly IComparisonMethodListener mComparisonMethodListener;
}
}