67 lines
1.9 KiB
C#
67 lines
1.9 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
using System;
|
|
|
|
namespace TapjoyEditor
|
|
{
|
|
public class EDMSelectionEditorWindow : EditorWindow
|
|
{
|
|
private int selectedVersionIndex = 0;
|
|
private Action<string> onVersionSelected;
|
|
private bool callbackInvoked = false;
|
|
private string[] versions;
|
|
|
|
public static void ShowWindow(Action<string> onVersionSelectedCallback, string[] versions)
|
|
{
|
|
EDMSelectionEditorWindow window = GetWindow<EDMSelectionEditorWindow>("Select Version");
|
|
window.onVersionSelected = onVersionSelectedCallback;
|
|
window.versions = versions;
|
|
window.ShowUtility();
|
|
}
|
|
|
|
private void OnGUI()
|
|
{
|
|
GUILayout.Label("Select the Unity External Dependency Manager version to install:",
|
|
EditorStyles.boldLabel);
|
|
selectedVersionIndex = EditorGUILayout.Popup("Version:", selectedVersionIndex, versions);
|
|
|
|
GUILayout.Space(20);
|
|
|
|
GUILayout.BeginHorizontal();
|
|
if (GUILayout.Button("Ok"))
|
|
{
|
|
string selectedVersion = versions[selectedVersionIndex];
|
|
InvokeCallback(selectedVersion);
|
|
Close();
|
|
}
|
|
|
|
if (GUILayout.Button("Cancel"))
|
|
{
|
|
InvokeCallback(null);
|
|
Close();
|
|
}
|
|
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
private void OnDestroy()
|
|
{
|
|
if (!callbackInvoked)
|
|
{
|
|
InvokeCallback(null);
|
|
}
|
|
}
|
|
private void InvokeCallback(string version = null)
|
|
{
|
|
|
|
if (!callbackInvoked)
|
|
{
|
|
callbackInvoked = true;
|
|
if (version == null)
|
|
{
|
|
version = string.Empty;
|
|
}
|
|
onVersionSelected?.Invoke(version);
|
|
}
|
|
}
|
|
}
|
|
} |