Ejemplo n.º 1
0
        private void SearchField()
        {
            float maxWidth = (EditorGUIUtility.labelWidth + EditorGUIUtility.fieldWidth + 5.0f) * 1.5f;

            GUILayoutOption[] guiLayoutOptionArray = new GUILayoutOption[2];
            guiLayoutOptionArray[0] = GUILayout.MinWidth(65f);
            guiLayoutOptionArray[1] = GUILayout.MaxWidth(300f);
            Rect rect      = GUILayoutUtility.GetRect(0, maxWidth, 16, 16, EditorStylesWrap.toolbarSearchField, guiLayoutOptionArray);
            int  controlId = GUIUtility.GetControlID(m_HashForSearchField, FocusType.Passive, rect);

            if (m_FocusSearchField)
            {
                GUIUtility.keyboardControl        = controlId;
                EditorGUIUtility.editingTextField = true;
                if (Event.current.type == EventType.Repaint)
                {
                    m_FocusSearchField = false;
                }
            }

            Event current = Event.current;

            if (current.type == EventType.KeyDown &&
                (current.keyCode == KeyCode.DownArrow || current.keyCode == KeyCode.UpArrow) &&
                GUIUtility.keyboardControl == controlId)
            {
                if (UpOrDownArrowPressedAction != null)
                {
                    UpOrDownArrowPressedAction();
                }
                current.Use();
            }

            string str = EditorGUIWrap.ToolbarSearchField(controlId, rect, m_SearchFieldText, false);

            if (str == m_SearchFieldText && !m_FocusSearchField)
            {
                return;
            }

            SearchText = str;
            Repaint();
        }