void OnGUI() { if (!EnsureSkin()) { return; } try { using (GUIHelpers.Horizontal(m_skin.inspectorBigStyle, GUILayout.Height(45.0f))) { { var r = GUILayoutUtility.GetRect(32, 32, GUILayout.ExpandHeight(false), GUILayout.ExpandWidth(false)); GUI.DrawTexture(r, m_skin.iconHeader); } using (GUIHelpers.Vertical()) { using (GUIHelpers.Horizontal()) { if (string.IsNullOrEmpty(m_openFilePath)) { EditorGUILayout.LabelField(string.Format(m_skin.titleContent, BetterBuildInfo.Version), m_skin.pathStyle, GUILayout.MinWidth(1.0f)); } else { EditorGUILayout.LabelField(m_openFilePath, m_skin.pathStyle, GUILayout.MinWidth(1.0f)); } } using (GUIHelpers.Horizontal()) { var recentReports = BuildInfoSettings.RecentReports; var recentReportsOptions = recentReports .Select(x => x.Replace("/", Skin.MenuSafeSlash)).ToArray(); if (GUIHelpers.ButtonWithDropdownList(m_skin.openReportContent, recentReportsOptions, x => OpenFile(recentReports[(int)x]), GUILayout.Width(130))) { OpenFile(); } using (GUIHelpers.Enabled(m_buildInfo != null)) { if (GUIHelpers.ButtonWithDropdownList(m_skin.openReportRefenceContent, recentReportsOptions, x => OpenReferenceFile(recentReports[(int)x]), GUILayout.Width(130))) { OpenReferenceFile(); } } { var rect = GUILayoutUtility.GetRect(m_skin.optionsContent, GUI.skin.button, GUILayout.Width(130)); if (GUI.Button(rect, m_skin.optionsContent, GUI.skin.button)) { GUIContent[] options = new[] { m_skin.openSettingsContent, m_skin.reloadSettingsContent, }; EditorUtility.DisplayCustomMenu(rect, options, -1, (userData, opts, selected) => { if (selected == 0) { EditorWindow.GetWindow(typeof(Editor).Assembly.GetType("UnityEditor.InspectorWindow")).Show(true); BuildInfoSettings.EnsureAsset(); EditorGUIUtility.PingObject(Settings); Selection.activeObject = Settings; } else if (selected == 1) { m_error = null; m_needsRefresh = true; } }, null); } } if (!EditorPrefs.GetBool("BBI_LeaveReviewDismissed", false)) { if (GUIHelpers.ButtonWithDropdownList(m_skin.reviewContent, new[] { m_skin.openStorePageContent, m_skin.dismissContent }, x => { if ((int)x == 0) { Help.BrowseURL(m_skin.storeUrl); } else { EditorPrefs.SetBool("BBI_LeaveReviewDismissed", true); } }, GUILayout.Width(130) )) { Help.BrowseURL(m_skin.storeUrl); } } GUILayout.FlexibleSpace(); { if (GUILayout.Button("*****@*****.**", EditorStyles.miniLabel)) { Help.BrowseURL("mailto:[email protected]?subject=BetterBuildInfo"); } } } //if (!EditorPrefs.HasKey("BBI_LeaveReviewDismissed")) //{ // EditorGUILayout.Space(); // using (GUIHelpers.Horizontal()) // { // GUILayout.Label("<b>If you enjoy the tool, please leave a review:</b>", m_skin.changelogStyle); // if (GUILayout.Button("Yes", EditorStyles.miniButton)) // { // Help.BrowseURL("https://assetstore.unity.com/packages/tools/utilities/better-build-info-pro-report-tool-72579"); // EditorPrefs.SetBool("BBI_LeaveReviewDismissed", true); // } // if (GUILayout.Button("Don't show this again", EditorStyles.miniButton)) // { // EditorPrefs.SetBool("BBI_LeaveReviewDismissed", true); // } // GUILayout.FlexibleSpace(); // } //} } } if (string.IsNullOrEmpty(m_openFilePath)) { DoStartScreenGUI(); } else { DoBuildInfoGUI(); } } catch (UnityEngine.ExitGUIException) { // don't log it, just rethrow throw; } catch (System.Exception ex) { Debug.LogException(ex); m_error = ex; } if (m_error != null) { try { EditorGUILayout.HelpBox("There was an error: " + m_error.Message + "\nCheck console for details.", MessageType.Error); } catch (System.Exception) { } } }