void DoSearchField(Rect rect) { searchField = searchField ?? new UnityEditor.IMGUI.Controls.SearchField(); PreviousSearch = SearchString; SearchString = searchField.OnGUI(rect, SearchString); if (HasSearchbarFocused()) { RepaintFocusedWindow(); } }
public void OnEnable() { if (m_treeViewState == null) { m_treeViewState = new UnityEditor.IMGUI.Controls.TreeViewState(); } var multiColumnHeaderState = AkWwiseTreeView.CreateDefaultMultiColumnHeaderState(); var multiColumnHeader = new UnityEditor.IMGUI.Controls.MultiColumnHeader(multiColumnHeaderState); m_treeView = new AkWwiseTreeView(m_treeViewState, multiColumnHeader, AkWwiseProjectInfo.GetTreeData()); m_treeView.SetDoubleClickFunction(PlayPauseItem); m_treeView.dirtyDelegate = RequestRepaint; m_SearchField = new UnityEditor.IMGUI.Controls.SearchField(); m_SearchField.downOrUpArrowKeyPressed += m_treeView.SetFocusAndEnsureSelectedItem; m_SearchField.SetFocus(); }
void ExtrusionUI() { LevelSegment segment = (LevelSegment)target; showProperties = EditorGUILayout.Foldout(showProperties, "Objects (" + segment.objectProperties.Length + ")"); if (showProperties) { GUI.color = Color.clear; GUILayout.Box("", GUILayout.Width(Screen.width - 50)); GUI.color = Color.white; if (searchField == null) { searchField = new UnityEditor.IMGUI.Controls.SearchField(); } string lastFilter = propertyFilter; propertyFilter = searchField.OnGUI(GUILayoutUtility.GetLastRect(), propertyFilter); if (lastFilter != propertyFilter) { List <PropertyBinder> found = new List <PropertyBinder>(); for (int i = 0; i < segment.objectProperties.Length; i++) { if (segment.objectProperties[i].transform.name.ToLower().Contains(propertyFilter.ToLower())) { found.Add(new PropertyBinder(i, segment.objectProperties[i].transform.name)); } } properties = found.ToArray(); } else if (propertyFilter == "") { if (properties.Length != segment.objectProperties.Length) { properties = new PropertyBinder[segment.objectProperties.Length]; } for (int i = 0; i < segment.objectProperties.Length; i++) { if (properties[i] == null) { properties[i] = new PropertyBinder(i, segment.objectProperties[i].transform.name); } else { properties[i].name = segment.objectProperties[i].transform.name; properties[i].index = i; } } } if (selectedProperties.Count > 0) { if (propertyWindow == null) { propertyWindow = EditorWindow.GetWindow <PropertyEditWindow>(true); propertyWindow.segment = segment; propertyWindow.selectedProperties = selectedProperties; EditorWindow inspectorWindow = GetWindowByName("UnityEditor.InspectorWindow"); if (inspectorWindow != null) { propertyWindow.Init(new Vector2(inspectorWindow.position.x, inspectorWindow.position.y + 250)); } else { propertyWindow.Init(new Vector2(2560 - Screen.width, 1080 / 2)); } } } ObjectPropertiesUI(properties, segment.objectProperties); if (selectedProperties.Count > 0) { if (Event.current.type == EventType.KeyDown) { if (Event.current.keyCode == KeyCode.DownArrow) { if (selectedProperties.Count > 1) { int temp = selectedProperties[selectedProperties.Count - 1]; selectedProperties.Clear(); selectedProperties.Add(temp); } selectedProperties[0]++; } if (Event.current.keyCode == KeyCode.UpArrow) { if (selectedProperties.Count > 1) { int temp = selectedProperties[0]; selectedProperties.Clear(); selectedProperties.Add(temp); } selectedProperties[0]--; } if (selectedProperties[0] < 0) { selectedProperties[0] = 0; } if (selectedProperties[0] >= segment.objectProperties.Length) { selectedProperties[0] = segment.objectProperties.Length - 1; } Repaint(); if (propertyWindow != null) { propertyWindow.Repaint(); } SceneView.RepaintAll(); Event.current.Use(); } } else if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Space) { selectedProperties.Clear(); selectedProperties.Add(0); } GUI.color = Color.white; } }