41 lines
1.2 KiB
C#
41 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
namespace Unity.PlasticSCM.Editor.UI.Progress
|
|
{
|
|
internal static class LoadingSpinner
|
|
{
|
|
internal static void OnGUI(
|
|
float progressPercent,
|
|
string progressTooltip = null)
|
|
{
|
|
Matrix4x4 oldMatrix = GUI.matrix;
|
|
|
|
Rect layoutRect = GUILayoutUtility.GetRect(
|
|
SPINNER_SIZE, SPINNER_SIZE);
|
|
|
|
Rect position = new Rect(
|
|
layoutRect.x + (layoutRect.width - SPINNER_SIZE) / 2,
|
|
layoutRect.y + (layoutRect.height - SPINNER_SIZE) / 2,
|
|
SPINNER_SIZE, SPINNER_SIZE);
|
|
|
|
Vector2 pivot = new Vector2(
|
|
position.x + SPINNER_SIZE / 2f,
|
|
position.y + SPINNER_SIZE / 2f);
|
|
|
|
int rotation = (int)(360 * progressPercent);
|
|
GUIUtility.RotateAroundPivot(rotation, pivot);
|
|
|
|
GUI.Label(
|
|
position,
|
|
new GUIContent(
|
|
Images.GetImage(Images.Name.Loading),
|
|
progressTooltip),
|
|
UnityStyles.StatusBar.Icon);
|
|
|
|
GUI.matrix = oldMatrix;
|
|
}
|
|
|
|
const int SPINNER_SIZE = 16;
|
|
}
|
|
}
|