Maze / Library /PackageCache /com.unity.collab-proxy@2.0.4 /Editor /PlasticSCM /UI /DrawSearchField.cs
| using System; | |
| using System.Reflection; | |
| using UnityEditor; | |
| using UnityEditor.IMGUI.Controls; | |
| using UnityEngine; | |
| using PlasticGui; | |
| namespace Unity.PlasticSCM.Editor.UI | |
| { | |
| internal static class DrawSearchField | |
| { | |
| internal static void For( | |
| SearchField searchField, | |
| TreeView treeView, | |
| float width) | |
| { | |
| Rect searchFieldRect = GUILayoutUtility.GetRect( | |
| width / 2f, EditorGUIUtility.singleLineHeight); | |
| searchFieldRect.y += 2f; | |
| treeView.searchString = Draw( | |
| searchField, | |
| searchFieldRect, | |
| treeView.searchString); | |
| if (!string.IsNullOrEmpty(treeView.searchString)) | |
| return; | |
| GUI.Label(searchFieldRect, PlasticLocalization.GetString( | |
| PlasticLocalization.Name.SearchTooltip), UnityStyles.Search); | |
| } | |
| static string Draw( | |
| SearchField searchField, | |
| Rect searchFieldRect, | |
| string searchString) | |
| { | |
| if (!mIsToolbarSearchFieldSearched) | |
| { | |
| mIsToolbarSearchFieldSearched = true; | |
| InternalToolbarSearchField = FindToolbarSearchField(); | |
| } | |
| if (InternalToolbarSearchField != null) | |
| { | |
| return (string)InternalToolbarSearchField.Invoke( | |
| null, | |
| new object[] { searchFieldRect, searchString, false }); | |
| } | |
| return searchField.OnToolbarGUI( | |
| searchFieldRect, searchString); | |
| } | |
| static MethodInfo FindToolbarSearchField() | |
| { | |
| return EditorGUIType.GetMethod( | |
| "ToolbarSearchField", | |
| BindingFlags.Static | BindingFlags.NonPublic, | |
| null, | |
| new Type[] { typeof(Rect), typeof(string), typeof(bool) }, | |
| null); | |
| } | |
| static bool mIsToolbarSearchFieldSearched; | |
| static MethodInfo InternalToolbarSearchField; | |
| static readonly Type EditorGUIType = typeof(EditorGUI); | |
| } | |
| } | |