summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/SequenceSelectorNameFormater.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/SequenceSelectorNameFormater.cs')
-rw-r--r--Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/SequenceSelectorNameFormater.cs32
1 files changed, 32 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/SequenceSelectorNameFormater.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/SequenceSelectorNameFormater.cs
new file mode 100644
index 0000000..654eecb
--- /dev/null
+++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/SequenceSelectorNameFormater.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+
+namespace UnityEditor.Timeline
+{
+ // Class used for uniquely format names used in the GenericMenu. We can't add duplicate MenuItem in GenericMenu
+ // so that's why we need to keep information about the text we want to uniquely format.
+ class SequenceMenuNameFormater
+ {
+ Dictionary<int, int> m_UniqueItem = new Dictionary<int, int>();
+
+ public string Format(string text)
+ {
+ var key = text.GetHashCode();
+ var index = 0;
+
+ if (m_UniqueItem.ContainsKey(key))
+ {
+ index = m_UniqueItem[key];
+ index++;
+ m_UniqueItem[key] = index;
+ }
+ else
+ {
+ m_UniqueItem.Add(key, index);
+ return text;
+ }
+
+ return $"{text}{index}";
+ }
+ }
+}