69 lines
2.6 KiB
C#
69 lines
2.6 KiB
C#
using UnityEngine;
|
|
using UnityEditor.IMGUI.Controls;
|
|
|
|
namespace UnityEditor.TestTools.CodeCoverage
|
|
{
|
|
class IncludedAssembliesPopupWindow : PopupWindowContent
|
|
{
|
|
SearchField m_SearchField;
|
|
IncludedAssembliesTreeView m_TreeView;
|
|
|
|
const float kWindowHeight = 221;
|
|
|
|
public float Width { get; set; }
|
|
|
|
class Styles
|
|
{
|
|
public static GUIContent SelectAllButtonLabel = EditorGUIUtility.TrTextContent("Select All");
|
|
public static GUIContent DeselectAllButtonLabel = EditorGUIUtility.TrTextContent("Deselect All");
|
|
}
|
|
|
|
public IncludedAssembliesPopupWindow(CodeCoverageWindow parent, string assembliesToInclude)
|
|
{
|
|
m_SearchField = new SearchField();
|
|
m_TreeView = new IncludedAssembliesTreeView(parent, assembliesToInclude);
|
|
}
|
|
|
|
public override void OnGUI(Rect rect)
|
|
{
|
|
const int border = 4;
|
|
const int topPadding = 12;
|
|
const int searchHeight = 20;
|
|
const int buttonHeight = 16;
|
|
const int remainTop = topPadding + searchHeight + buttonHeight + border + border;
|
|
|
|
float selectAllWidth = EditorStyles.miniButton.CalcSize(Styles.SelectAllButtonLabel).x;
|
|
float deselectAllWidth = EditorStyles.miniButton.CalcSize(Styles.DeselectAllButtonLabel).x;
|
|
|
|
Rect searchRect = new Rect(border, topPadding, rect.width - border * 2, searchHeight);
|
|
Rect selectAllRect = new Rect(border, topPadding + searchHeight + border, selectAllWidth, buttonHeight);
|
|
Rect deselectAllRect = new Rect(border + selectAllWidth + border, topPadding + searchHeight + border, deselectAllWidth, buttonHeight);
|
|
Rect remainingRect = new Rect(border, remainTop, rect.width - border * 2, rect.height - remainTop - border);
|
|
|
|
m_TreeView.searchString = m_SearchField.OnGUI(searchRect, m_TreeView.searchString);
|
|
|
|
if (GUI.Button(selectAllRect, Styles.SelectAllButtonLabel, EditorStyles.miniButton))
|
|
{
|
|
m_TreeView.SelectAll();
|
|
}
|
|
|
|
if (GUI.Button(deselectAllRect, Styles.DeselectAllButtonLabel, EditorStyles.miniButton))
|
|
{
|
|
m_TreeView.DeselectAll();
|
|
}
|
|
|
|
m_TreeView.OnGUI(remainingRect);
|
|
}
|
|
|
|
public override Vector2 GetWindowSize()
|
|
{
|
|
return new Vector2(Mathf.Max(Width, m_TreeView.Width), kWindowHeight);
|
|
}
|
|
|
|
public override void OnOpen()
|
|
{
|
|
m_SearchField.SetFocus();
|
|
base.OnOpen();
|
|
}
|
|
}
|
|
} |