Без опису
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

AdvancedDropdownItem.cs 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #if UNITY_EDITOR
  2. using System;
  3. using System.Collections.Generic;
  4. namespace UnityEngine.InputSystem.Editor
  5. {
  6. internal class AdvancedDropdownItem : IComparable
  7. {
  8. internal readonly List<AdvancedDropdownItem> m_Children = new List<AdvancedDropdownItem>();
  9. public string name { get; set; }
  10. public Texture2D icon { get; set; }
  11. public int id { get; set; }
  12. public bool enabled { get; set; } = true;
  13. public int indent { get; set; }
  14. internal int elementIndex { get; set; } = -1;
  15. public IEnumerable<AdvancedDropdownItem> children => m_Children;
  16. protected string m_SearchableName;
  17. public virtual string searchableName => string.IsNullOrEmpty(m_SearchableName) ? name : m_SearchableName;
  18. public void AddChild(AdvancedDropdownItem child)
  19. {
  20. m_Children.Add(child);
  21. }
  22. public int GetIndexOfChild(AdvancedDropdownItem child)
  23. {
  24. return m_Children.IndexOf(child);
  25. }
  26. static readonly AdvancedDropdownItem k_SeparatorItem = new SeparatorDropdownItem();
  27. public AdvancedDropdownItem(string name)
  28. {
  29. this.name = name;
  30. id = name.GetHashCode();
  31. }
  32. public virtual int CompareTo(object o)
  33. {
  34. return name.CompareTo((o as AdvancedDropdownItem).name);
  35. }
  36. public void AddSeparator(string label = null)
  37. {
  38. if (string.IsNullOrEmpty(label))
  39. AddChild(k_SeparatorItem);
  40. else
  41. AddChild(new SeparatorDropdownItem(label));
  42. }
  43. internal bool IsSeparator()
  44. {
  45. return this is SeparatorDropdownItem;
  46. }
  47. public override string ToString()
  48. {
  49. return name;
  50. }
  51. private class SeparatorDropdownItem : AdvancedDropdownItem
  52. {
  53. public SeparatorDropdownItem(string label = "")
  54. : base(label)
  55. {
  56. }
  57. }
  58. }
  59. }
  60. #endif // UNITY_EDITOR