60 lines
2.2 KiB
C#
60 lines
2.2 KiB
C#
|
using System;
|
||
|
using UnityEditor.TestTools.TestRunner.GUI.Controls;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace UnityEditor.TestTools.TestRunner.GUI
|
||
|
{
|
||
|
internal static class TestRunnerGUI
|
||
|
{
|
||
|
private static Styles s_Styles;
|
||
|
private static Styles Style => s_Styles ?? (s_Styles = new Styles());
|
||
|
|
||
|
internal static void TestPlatformSelectionDropDown(ISelectionDropDownContentProvider contentProvider)
|
||
|
{
|
||
|
var text = Style.TestPlatformButtonString;
|
||
|
for (int i = 0; i < contentProvider.Count; i++)
|
||
|
{
|
||
|
if (contentProvider.IsSelected(i))
|
||
|
{
|
||
|
text += " " + contentProvider.GetName(i);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var content = new GUIContent(text);
|
||
|
SelectionDropDown(contentProvider, content, GUILayout.Width(EditorStyles.toolbarDropDown.CalcSize(content).x));
|
||
|
}
|
||
|
|
||
|
internal static void CategorySelectionDropDown(ISelectionDropDownContentProvider contentProvider)
|
||
|
{
|
||
|
SelectionDropDown(contentProvider, Style.CategoryButtonContent, GUILayout.Width(Style.CategoryButtonWidth));
|
||
|
}
|
||
|
|
||
|
private static void SelectionDropDown(ISelectionDropDownContentProvider listContentProvider, GUIContent buttonContent,
|
||
|
params GUILayoutOption[] options)
|
||
|
{
|
||
|
var rect = EditorGUILayout.GetControlRect(false, EditorGUI.kSingleLineHeight, Styles.DropdownButton, options);
|
||
|
if (!EditorGUI.DropdownButton(rect, buttonContent, FocusType.Passive, Styles.DropdownButton))
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var selectionDropDown = new SelectionDropDown(listContentProvider);
|
||
|
PopupWindow.Show(rect, selectionDropDown);
|
||
|
}
|
||
|
|
||
|
private class Styles
|
||
|
{
|
||
|
public static readonly GUIStyle DropdownButton = EditorStyles.toolbarDropDown;
|
||
|
public readonly string TestPlatformButtonString = "Run Location:";
|
||
|
public readonly GUIContent CategoryButtonContent = new GUIContent("Category");
|
||
|
public readonly float CategoryButtonWidth;
|
||
|
|
||
|
public Styles()
|
||
|
{
|
||
|
CategoryButtonWidth = DropdownButton.CalcSize(CategoryButtonContent).x;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|