public static void ShowValues(GraphToolState graphToolState, string title, IEnumerable <string> values, Vector2 position, Action <string, int> callback) { var searcherSize = graphToolState.GetSearcherSize(Usage.k_Values); position += EditorWindow.focusedWindow.position.position; var rect = new Rect(position, searcherSize.Size); var items = values.Select(v => new SearcherItem(v)).ToList(); var database = new SearcherDatabase(items); var adapter = new SimpleSearcherAdapter(title); adapter.SetInitialSplitterDetailRatio(searcherSize.RightLeftRatio); var searcher = new Searcher.Searcher(database, adapter); Searcher.SearcherWindow.Show(EditorWindow.focusedWindow, searcher, item => { if (item == null) { return(false); } callback(item.Name, item.Id); return(true); }, null, rect); ListenToSearcherSize(graphToolState, Usage.k_Values); }
static void ShowSearcher(GraphToolState graphToolState, Vector2 position, Action <GraphNodeModelSearcherItem> callback, List <SearcherDatabaseBase> dbs, SearcherFilter filter, IGTFSearcherAdapter adapter, string usage) { var searcherSize = graphToolState.GetSearcherSize(usage); position += EditorWindow.focusedWindow.position.position; var rect = new Rect(position, searcherSize.Size); adapter.SetInitialSplitterDetailRatio(searcherSize.RightLeftRatio); EditorWindow window = null; var prefs = graphToolState.Preferences; if (prefs?.GetBool(BoolPref.SearcherInRegularWindow) ?? false) { window = PromptSearcherInOwnWindow(dbs, filter, adapter, callback, rect); } else { PromptSearcherPopup(dbs, filter, adapter, rect, callback); } ListenToSearcherSize(graphToolState, usage, window); }
public static void ShowTypes(GraphToolState graphToolState, List <SearcherDatabaseBase> databases, Vector2 position, Action <TypeHandle, int> callback) { var searcherSize = graphToolState.GetSearcherSize(Usage.k_Types); position += EditorWindow.focusedWindow.position.position; var rect = new Rect(position, searcherSize.Size); k_TypeAdapter.SetInitialSplitterDetailRatio(searcherSize.RightLeftRatio); var searcher = new Searcher.Searcher(databases, k_TypeAdapter) { SortComparison = TypeComparison }; Searcher.SearcherWindow.Show(EditorWindow.focusedWindow, searcher, item => { if (!(item is TypeSearcherItem typeItem)) { return(false); } callback(typeItem.Type, 0); return(true); }, null, rect);