static void OnContextClick(Vector2 position, Func <bool> hasMoreOptions, Action toggleMoreOptions) { var menu = new GenericMenu(); menu.AddItem(EditorGUIUtility.TrTextContent("Show Additional Properties"), hasMoreOptions.Invoke(), () => toggleMoreOptions.Invoke()); menu.AddItem(EditorGUIUtility.TrTextContent("Show All Additional Properties..."), false, () => CoreRenderPipelinePreferences.Open()); menu.DropDown(new Rect(position, Vector2.zero)); }
void OnContextClick(Vector2 position, VolumeComponentEditor targetEditor, int id) { var targetComponent = targetEditor.target; var menu = new GenericMenu(); if (id == 0) { menu.AddDisabledItem(EditorGUIUtility.TrTextContent("Move Up")); menu.AddDisabledItem(EditorGUIUtility.TrTextContent("Move to Top")); } else { menu.AddItem(EditorGUIUtility.TrTextContent("Move to Top"), false, () => MoveComponent(id, -id)); menu.AddItem(EditorGUIUtility.TrTextContent("Move Up"), false, () => MoveComponent(id, -1)); } if (id == m_Editors.Count - 1) { menu.AddDisabledItem(EditorGUIUtility.TrTextContent("Move to Bottom")); menu.AddDisabledItem(EditorGUIUtility.TrTextContent("Move Down")); } else { menu.AddItem(EditorGUIUtility.TrTextContent("Move to Bottom"), false, () => MoveComponent(id, (m_Editors.Count - 1) - id)); menu.AddItem(EditorGUIUtility.TrTextContent("Move Down"), false, () => MoveComponent(id, 1)); } menu.AddSeparator(string.Empty); menu.AddItem(EditorGUIUtility.TrTextContent("Collapse All"), false, () => CollapseComponents()); menu.AddItem(EditorGUIUtility.TrTextContent("Expand All"), false, () => ExpandComponents()); menu.AddSeparator(string.Empty); menu.AddItem(EditorGUIUtility.TrTextContent("Reset"), false, () => ResetComponent(targetComponent.GetType(), id)); menu.AddItem(EditorGUIUtility.TrTextContent("Remove"), false, () => RemoveComponent(id)); menu.AddSeparator(string.Empty); if (targetEditor.hasAdditionalProperties) { menu.AddItem(EditorGUIUtility.TrTextContent("Show Additional Properties"), targetEditor.showAdditionalProperties, () => targetEditor.showAdditionalProperties ^= true); menu.AddItem(EditorGUIUtility.TrTextContent("Show All Additional Properties..."), false, () => CoreRenderPipelinePreferences.Open()); } else { menu.AddDisabledItem(EditorGUIUtility.TrTextContent("Show Additional Properties")); menu.AddDisabledItem(EditorGUIUtility.TrTextContent("Show All Additional Properties...")); } menu.AddSeparator(string.Empty); menu.AddItem(EditorGUIUtility.TrTextContent("Copy Settings"), false, () => CopySettings(targetComponent)); if (CanPaste(targetComponent)) { menu.AddItem(EditorGUIUtility.TrTextContent("Paste Settings"), false, () => PasteSettings(targetComponent)); } else { menu.AddDisabledItem(EditorGUIUtility.TrTextContent("Paste Settings")); } menu.AddSeparator(string.Empty); menu.AddItem(EditorGUIUtility.TrTextContent("Toggle All"), false, () => m_Editors[id].SetAllOverridesTo(true)); menu.AddItem(EditorGUIUtility.TrTextContent("Toggle None"), false, () => m_Editors[id].SetAllOverridesTo(false)); menu.DropDown(new Rect(position, Vector2.zero)); }