BetterTextMeshProDropdownEditor.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using UnityEditor;
  6. using UnityEditor.UI;
  7. using UnityEditorInternal;
  8. using UnityEngine;
  9. using UnityEngine.UI;
  10. using TMPro;
  11. using TMPro.EditorUtilities;
  12. namespace TheraBytes.BetterUi.Editor
  13. {
  14. [CustomEditor(typeof(BetterTextMeshProDropdown)), CanEditMultipleObjects]
  15. public class BetterTextMeshProDropDownEditor : TMPro.EditorUtilities.DropdownEditor
  16. {
  17. bool foldout = true;
  18. BetterElementHelper<TMP_Dropdown, BetterTextMeshProDropdown> helper =
  19. new BetterElementHelper<TMP_Dropdown, BetterTextMeshProDropdown>();
  20. int showHideTransCount = 0;
  21. protected override void OnEnable()
  22. {
  23. base.OnEnable();
  24. }
  25. public override void OnInspectorGUI()
  26. {
  27. EditorGUILayout.Space();
  28. var origFontStyle = EditorStyles.foldout.fontStyle;
  29. EditorStyles.foldout.fontStyle = FontStyle.Bold;
  30. foldout = EditorGUILayout.Foldout(foldout, new GUIContent("Better UI"));
  31. EditorStyles.foldout.fontStyle = origFontStyle;
  32. if (foldout)
  33. {
  34. EditorGUI.indentLevel++;
  35. BetterTextMeshProDropdown obj = target as BetterTextMeshProDropdown;
  36. helper.DrawGui(serializedObject, obj);
  37. // Show / Hide Transitions
  38. var prop = serializedObject.FindProperty("showHideTransitions");
  39. EditorGuiUtils.DrawTransitions("Show / Hide Transitions", obj.ShowHideTransitions, prop,
  40. ref showHideTransCount, Transitions.ShowHideStateNames);
  41. serializedObject.ApplyModifiedProperties();
  42. EditorGUI.indentLevel--;
  43. }
  44. base.OnInspectorGUI();
  45. }
  46. [MenuItem("CONTEXT/TMP_Dropdown/♠ Make Better")]
  47. public static void MakeBetter(MenuCommand command)
  48. {
  49. var sel = command.context as TMP_Dropdown;
  50. Betterizer.MakeBetter<TMP_Dropdown, BetterTextMeshProDropdown>(sel);
  51. }
  52. }
  53. }