public static void DisplayPopupMenu(Rect position, string menuItemPath, MenuCommand command) { if (menuItemPath == "CONTEXT" || menuItemPath == "CONTEXT/" || menuItemPath == "CONTEXT\\") { bool flag = false; if (command == null) { flag = true; } if (command != null && command.context == null) { flag = true; } if (flag) { Debug.LogError("DisplayPopupMenu: invalid arguments: using CONTEXT requires a valid MenuCommand object. If you want a custom context menu then try using the GenericMenu."); return; } } Vector2 vector = GUIUtility.GUIToScreenPoint(new Vector2(position.x, position.y)); position.x = vector.x; position.y = vector.y; EditorUtility.Internal_DisplayPopupMenu(position, menuItemPath, (command != null) ? command.context : null, (command != null) ? command.userData : 0); EditorUtility.ResetMouseDown(); }
internal static void DisplayObjectContextMenu(Rect position, UnityEngine.Object[] context, int contextUserData) { Vector2 vector = GUIUtility.GUIToScreenPoint(new Vector2(position.x, position.y)); position.x = vector.x; position.y = vector.y; EditorUtility.Internal_DisplayObjectContextMenu(position, context, contextUserData); EditorUtility.ResetMouseDown(); }
internal static void DisplayCustomMenuWithSeparators(Rect position, string[] options, bool[] enabled, bool[] separator, int[] selected, EditorUtility.SelectMenuItemFunction callback, object userData, bool showHotkey) { Vector2 vector = GUIUtility.GUIToScreenPoint(new Vector2(position.x, position.y)); position.x = vector.x; position.y = vector.y; int[] array = new int[options.Length]; int[] array2 = new int[options.Length]; for (int i = 0; i < options.Length; i++) { array[i] = ((!enabled[i]) ? 0 : 1); array2[i] = ((!separator[i]) ? 0 : 1); } EditorUtility.Internal_DisplayCustomMenu(position, options, array, array2, selected, callback, userData, showHotkey); EditorUtility.ResetMouseDown(); }
internal static void DisplayCustomMenuWithSeparators(Rect position, string[] options, bool[] enabled, bool[] separator, int[] selected, EditorUtility.SelectMenuItemFunction callback, object userData) { Vector2 screenPoint = GUIUtility.GUIToScreenPoint(new Vector2(position.x, position.y)); position.x = screenPoint.x; position.y = screenPoint.y; int[] enabled1 = new int[options.Length]; int[] separator1 = new int[options.Length]; for (int index = 0; index < options.Length; ++index) { enabled1[index] = !enabled[index] ? 0 : 1; separator1[index] = !separator[index] ? 0 : 1; } EditorUtility.Internal_DisplayCustomMenu(position, options, enabled1, separator1, selected, callback, userData); EditorUtility.ResetMouseDown(); }