Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);