コード例 #1
0
 void OnMouseDown(MouseDownEvent evt)
 {
     SearcherWindow.Show(this, m_SearcherItems, "OnMouseDown", item => {
         Debug.Log("Searcher item selected: " + (item?.Name ?? "<none>"));
         return(true);
     }, evt.mousePosition);
 }
コード例 #2
0
 void OnKeyDown(KeyDownEvent evt)
 {
     if (evt.keyCode == KeyCode.Space)
     {
         SearcherWindow.Show(this, m_SearcherItems, "OnKeyDown", item => {
             Debug.Log("Searcher item selected: " + (item?.Name ?? "<none>"));
             return(true);
         }, evt.originalMousePosition);
     }
 }
コード例 #3
0
        public override void OnInspectorGUI()
        {
            var root     = new SearcherItem("Root");
            var children = new List <SearcherItem>();

            for (var i = 0; i < 10; ++i)
            {
                children.Add(new SearcherItem("B-" + i));
            }

            var child = new SearcherItem("Child", "", children);

            root.AddChild(child);

            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.PrefixLabel("Mouse Position");
                if (EditorGUILayout.DropdownButton(new GUIContent("Button"), FocusType.Passive, GUI.skin.button))
                {
                    var editorWindow       = EditorWindow.focusedWindow;
                    var localMousePosition = Event.current.mousePosition;
                    var worldMousePosition = editorWindow.rootVisualElement.LocalToWorld(localMousePosition);

                    SearcherWindow.Show(
                        editorWindow,
                        new List <SearcherItem> {
                        root
                    },
                        "Mouse Position",
                        item => {
                        Debug.Log("Searcher item selected: " + (item?.Name ?? "<none>"));
                        return(true);
                    },
                        worldMousePosition);
                }
                EditorGUILayout.EndHorizontal();
            }

            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.PrefixLabel("Button Center");

                var selected = EditorGUILayout.DropdownButton(new GUIContent("Button"), FocusType.Passive, GUI.skin.button);
                if (Event.current.type == EventType.Repaint)
                {
                    m_ButtonRect = GUILayoutUtility.GetLastRect();
                }

                if (selected)
                {
                    var editorWindow      = EditorWindow.focusedWindow;
                    var localButtonCenter = m_ButtonRect.center;
                    var worldButtonCenter = editorWindow.rootVisualElement.LocalToWorld(localButtonCenter);

                    SearcherWindow.Show(
                        editorWindow,
                        new List <SearcherItem> {
                        root
                    },
                        "Button Center",
                        item => {
                        Debug.Log("Searcher item selected: " + (item?.Name ?? "<none>"));
                        return(true);
                    },
                        worldButtonCenter);
                }

                EditorGUILayout.EndHorizontal();
            }
        }