void DrawGUIForArrays()
        {
            for (int i = 0; i < m_OptionNames.Length; i++)
            {
                bool toggleVal = (m_SelectionMaskValues[0] & m_OptionMaskValues[i]) == m_OptionMaskValues[i];
                if (m_SelectionMaskValues[0] != 0 && i == 0)
                {
                    toggleVal = false;
                }
                if ((m_SelectionMaskValues[0] == int.MaxValue || m_SelectionMaskValues[0] == m_AllLayersMask) && i == 1)
                {
                    toggleVal = true;
                }

                EditorGUI.BeginChangeCheck();
                var guiRect = EditorGUILayout.GetControlRect(false, EditorGUI.kSingleLineHeight);
                guiRect.width = GetWindowSize().x;
                guiRect.x     = 0;
                DrawListBackground(guiRect, i % 2 == 0);
                var value = GUI.Toggle(guiRect, toggleVal, m_OptionNames[i], Styles.menuItem);

                if (EditorGUI.EndChangeCheck())
                {
                    m_SelectionMaskValues[0] = m_OptionMaskValues[i];
                    var oldMaskValues = m_OptionMaskValues.Clone();
                    RecalculateMasks();
                    m_MaskChangeCallback.Invoke(oldMaskValues, null, i);
                }
            }
        }
예제 #2
0
        void OnGUI()
        {
            InitStyle();

            KeyCode keyDown = KeyCode.None;

            if (Event.current.type == EventType.KeyDown)
            {
                keyDown = Event.current.keyCode;
            }

            GUI.Label(new Rect(0, 0, position.width, position.height), GUIContent.none, Styles.background);

            DrawSearchField();

            DrawDisplayedOption();

            HandleInput(keyDown);

            if (_submitNewSelection)
            {
                _callback.Invoke(_userData, _options, _selected);
                _submitNewSelection = false;
            }

            if (_closeWindow)
            {
                _closeWindow = false;
                Close();
            }
        }