private void AddStackTraceLoggingMenu(GenericMenu menu)
        {
            // TODO: Maybe remove this, because it basically duplicates UI in PlayerSettings
            foreach (LogType logType in Enum.GetValues(typeof(LogType)))
            {
                foreach (StackTraceLogType stackTraceLogType in Enum.GetValues(typeof(StackTraceLogType)))
                {
                    StackTraceLogTypeData data;
                    data.logType           = logType;
                    data.stackTraceLogType = stackTraceLogType;

                    menu.AddItem(EditorGUIUtility.TrTextContent("Stack Trace Logging/" + logType + "/" + stackTraceLogType), PlayerSettings.GetStackTraceLogType(logType) == stackTraceLogType,
                                 ToggleLogStackTraces, data);
                }
            }

            int stackTraceLogTypeForAll = (int)PlayerSettings.GetStackTraceLogType(LogType.Log);

            foreach (LogType logType in Enum.GetValues(typeof(LogType)))
            {
                if (PlayerSettings.GetStackTraceLogType(logType) != (StackTraceLogType)stackTraceLogTypeForAll)
                {
                    stackTraceLogTypeForAll = -1;
                    break;
                }
            }

            foreach (StackTraceLogType stackTraceLogType in Enum.GetValues(typeof(StackTraceLogType)))
            {
                menu.AddItem(EditorGUIUtility.TrTextContent("Stack Trace Logging/All/" + stackTraceLogType), (StackTraceLogType)stackTraceLogTypeForAll == stackTraceLogType,
                             ToggleLogStackTracesForAll, stackTraceLogType);
            }
        }
        private void AddStackTraceLoggingMenu(GenericMenu menu)
        {
            IEnumerator enumerator = Enum.GetValues(typeof(LogType)).GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    LogType     logType     = (LogType)enumerator.Current;
                    IEnumerator enumerator2 = Enum.GetValues(typeof(StackTraceLogType)).GetEnumerator();
                    try
                    {
                        while (enumerator2.MoveNext())
                        {
                            StackTraceLogType stackTraceLogType = (StackTraceLogType)enumerator2.Current;
                            ConsoleWindow.StackTraceLogTypeData stackTraceLogTypeData;
                            stackTraceLogTypeData.logType           = logType;
                            stackTraceLogTypeData.stackTraceLogType = stackTraceLogType;
                            menu.AddItem(new GUIContent(string.Concat(new object[]
                            {
                                "Stack Trace Logging/",
                                logType,
                                "/",
                                stackTraceLogType
                            })), PlayerSettings.GetStackTraceLogType(logType) == stackTraceLogType, new GenericMenu.MenuFunction2(this.ToggleLogStackTraces), stackTraceLogTypeData);
                        }
                    }
                    finally
                    {
                        IDisposable disposable;
                        if ((disposable = (enumerator2 as IDisposable)) != null)
                        {
                            disposable.Dispose();
                        }
                    }
                }
            }
            finally
            {
                IDisposable disposable2;
                if ((disposable2 = (enumerator as IDisposable)) != null)
                {
                    disposable2.Dispose();
                }
            }
            int         num         = (int)PlayerSettings.GetStackTraceLogType(LogType.Log);
            IEnumerator enumerator3 = Enum.GetValues(typeof(LogType)).GetEnumerator();

            try
            {
                while (enumerator3.MoveNext())
                {
                    LogType logType2 = (LogType)enumerator3.Current;
                    if (PlayerSettings.GetStackTraceLogType(logType2) != (StackTraceLogType)num)
                    {
                        num = -1;
                        break;
                    }
                }
            }
            finally
            {
                IDisposable disposable3;
                if ((disposable3 = (enumerator3 as IDisposable)) != null)
                {
                    disposable3.Dispose();
                }
            }
            IEnumerator enumerator4 = Enum.GetValues(typeof(StackTraceLogType)).GetEnumerator();

            try
            {
                while (enumerator4.MoveNext())
                {
                    StackTraceLogType stackTraceLogType2 = (StackTraceLogType)enumerator4.Current;
                    menu.AddItem(new GUIContent("Stack Trace Logging/All/" + stackTraceLogType2), num == (int)stackTraceLogType2, new GenericMenu.MenuFunction2(this.ToggleLogStackTracesForAll), stackTraceLogType2);
                }
            }
            finally
            {
                IDisposable disposable4;
                if ((disposable4 = (enumerator4 as IDisposable)) != null)
                {
                    disposable4.Dispose();
                }
            }
        }