internal static PrefabStage.Mode GetPrefabStageModeFromModifierKeys()
        {
            // Update GetPrefabButtonContent if this logic changes
            var defaultPrefabMode     = PreferencesProvider.GetDefaultPrefabModeForHierarchy();
            var alternativePrefabMode = (defaultPrefabMode == PrefabStage.Mode.InContext) ? PrefabStage.Mode.InIsolation : PrefabStage.Mode.InContext;

            return(Event.current.alt ? alternativePrefabMode : defaultPrefabMode);
        }
        internal static GUIContent GetPrefabButtonContent(int instanceID)
        {
            GUIContent result;
            var        defaultPrefabMode = PreferencesProvider.GetDefaultPrefabModeForHierarchy();

            switch (defaultPrefabMode)
            {
            case PrefabStage.Mode.InContext:
                result = new GUIContent("", null, $"Open Prefab Asset in context.\nPress modifier key [Alt] to open in isolation.");
                break;

            case PrefabStage.Mode.InIsolation:
                result = new GUIContent("", null, "Open Prefab Asset in isolation.\nPress modifier key [Alt] to open in context.");
                break;

            default:
                result = new GUIContent("");
                Debug.LogError("Unhandled defaultPrefabMode enum");
                break;
            }
            return(result);
        }