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); } } }
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(); } }