1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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;
- }
- }
- }
- }
|