DrawProgressForViews.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using UnityEditor;
  2. using UnityEngine;
  3. namespace Unity.PlasticSCM.Editor.UI.Progress
  4. {
  5. internal static class DrawProgressForViews
  6. {
  7. internal static void ForNotificationArea(
  8. ProgressControlsForViews.Data data)
  9. {
  10. EditorGUILayout.BeginHorizontal();
  11. EditorGUILayout.HelpBox(
  12. data.NotificationMessage,
  13. data.NotificationType);
  14. EditorGUILayout.EndHorizontal();
  15. }
  16. internal static void ForIndeterminateProgress(
  17. ProgressControlsForViews.Data data)
  18. {
  19. EditorGUILayout.BeginHorizontal();
  20. GUILayout.Space(10);
  21. DoProgressBar(data.ProgressPercent);
  22. GUILayout.Space(3);
  23. DoProgressLabel(data.ProgressMessage);
  24. GUILayout.FlexibleSpace();
  25. EditorGUILayout.EndHorizontal();
  26. }
  27. static void DoProgressBar(float progressPercent)
  28. {
  29. EditorGUILayout.BeginVertical();
  30. GUILayout.FlexibleSpace();
  31. Rect progressRect = GUILayoutUtility.GetRect(30, 10);
  32. EditorGUI.ProgressBar(progressRect, progressPercent, string.Empty);
  33. GUILayout.FlexibleSpace();
  34. EditorGUILayout.EndVertical();
  35. }
  36. static void DoProgressLabel(string progressMessage)
  37. {
  38. EditorGUILayout.BeginVertical();
  39. GUILayout.FlexibleSpace();
  40. GUILayout.Label(progressMessage, UnityStyles.ProgressLabel);
  41. GUILayout.FlexibleSpace();
  42. EditorGUILayout.EndVertical();
  43. }
  44. }
  45. }