You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.5 KiB

  1. using UnityEngine.Experimental.UIElements;
  2. namespace UnityEditor.PackageManager.UI
  3. {
  4. internal static class UIUtils
  5. {
  6. private const string DisplayNone = "display-none";
  7. public static void SetElementDisplay(VisualElement element, bool value)
  8. {
  9. if (element == null)
  10. return;
  11. if (value)
  12. element.RemoveFromClassList(DisplayNone);
  13. else
  14. element.AddToClassList(DisplayNone);
  15. element.visible = value;
  16. }
  17. public static void SetElementDisplayNonEmpty(Label element)
  18. {
  19. if (element == null)
  20. return;
  21. var empty = string.IsNullOrEmpty(element.text);
  22. if (empty)
  23. element.AddToClassList(DisplayNone);
  24. else
  25. element.RemoveFromClassList(DisplayNone);
  26. element.visible = !empty;
  27. }
  28. public static void SetElementDisplayNonEmpty(Button element)
  29. {
  30. if (element == null)
  31. return;
  32. var empty = string.IsNullOrEmpty(element.text);
  33. if (empty)
  34. element.AddToClassList(DisplayNone);
  35. else
  36. element.RemoveFromClassList(DisplayNone);
  37. element.visible = !empty;
  38. }
  39. public static bool IsElementVisible(VisualElement element)
  40. {
  41. return element.visible && !element.ClassListContains(DisplayNone);
  42. }
  43. }
  44. }