public void Refresh() { SearchService.SearchTextChanged(m_Context); m_FilteredItems = SearchService.GetItems(m_Context); m_SelectedIndex = -1; m_ScrollPosition.y = 0; UpdateWindowTitle(); Repaint(); }
internal void OnEnable() { m_Context = new SearchContext { searchBoxText = SearchService.LastSearch, focusedWindow = lastFocusedWindow }; SearchService.SearchTextChanged(m_Context); m_SearchBoxFocus = true; lastFocusedWindow = s_FocusedWindow; UpdateWindowTitle(); m_SelectedIndex = -1; m_FilteredItems = null; m_ScrollPosition.y = 0; SearchService.asyncItemReceived += OnAsyncItemsReceived; foreach (var provider in SearchService.Providers) { provider.onEnable?.Invoke(); } }
private void DrawToolbar(SearchContext context) { if (context == null) { return; } GUILayout.BeginHorizontal(Styles.toolbar); { var rightRect = EditorGUILayout.GetControlRect(GUILayout.MaxWidth(32f), GUILayout.ExpandHeight(true)); if (EditorGUI.DropdownButton(rightRect, Styles.filterButtonContent, FocusType.Passive, Styles.filterButton) || m_ShowFilterWindow) { if (FilterWindow.canShow) { rightRect.x += 12f; rightRect.y -= 3f; if (m_ShowFilterWindow) { rightRect.y += 30f; } m_ShowFilterWindow = false; if (FilterWindow.ShowAtPosition(this, rightRect)) { GUIUtility.ExitGUI(); } } } EditorGUI.BeginChangeCheck(); using (new BlinkCursorScope(m_CursorBlinking, new Color(0, 0, 0, 0.01f))) { var userSearchQuery = context.searchBoxText; if (!String.IsNullOrEmpty(m_CycledSearch) && (Event.current.type == EventType.Repaint || Event.current.type == EventType.Layout)) { userSearchQuery = m_CycledSearch; m_CycledSearch = null; m_SearchBoxFocus = true; GUI.changed = true; } GUI.SetNextControlName(k_QuickSearchBoxName); context.searchBoxText = EditorGUILayout.TextField(userSearchQuery, Styles.searchField, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)); } if (String.IsNullOrEmpty(context.searchBoxText)) { EditorGUI.BeginDisabledGroup(true); EditorGUI.TextArea(GUILayoutUtility.GetLastRect(), "search anything...", Styles.placeholderTextStyle); EditorGUI.EndDisabledGroup(); } if (!String.IsNullOrEmpty(context.searchBoxText)) { if (GUILayout.Button(Icons.clear, Styles.searchFieldClear, GUILayout.Width(24), GUILayout.Height(24))) { context.searchBoxText = ""; GUI.changed = true; GUI.FocusControl(null); } } if (EditorGUI.EndChangeCheck() || m_FilteredItems == null) { m_SelectedIndex = -1; m_ScrollPosition.y = 0; SearchService.SearchTextChanged(context); m_FilteredItems = SearchService.GetItems(context); UpdateWindowTitle(); } #if QUICKSEARCH_DEBUG DrawDebugTools(); #endif } GUILayout.EndHorizontal(); }