private void DrawAnalysisMessage() { if (analysisDataTreeView == null) { return; } Rect analysisMenuBarRect = new Rect(lowerPanelRect.x, lowerPanelRect.y, lowerPanelRect.width, menuBarHeight); Rect titleRect = new Rect(lowerPanelRect.x, analysisMenuBarRect.y + analysisMenuBarRect.height, lowerPanelRect.width, 1.5f * EditorGUIUtility.singleLineHeight); Rect analysisRect = new Rect(lowerPanelRect.x, titleRect.y + titleRect.height, lowerPanelRect.width, lowerPanelRect.height - titleRect.height - analysisMenuBarRect.height); GUILayout.BeginArea(analysisMenuBarRect, EditorStyles.toolbar); { GUILayout.BeginHorizontal(); { EditorGUI.BeginChangeCheck(); GUILayout.Label(new GUIContent("Sort Type: "), EditorStyles.toolbarButton); analysisDataSortType = (AnalysisDataSortType)EditorGUILayout.EnumPopup(analysisDataSortType, EditorStyles.toolbarPopup); if (EditorGUI.EndChangeCheck()) { this.editorManager.activeEditor.analysisDataManager.Sort(analysisDataSortType); } GUILayout.FlexibleSpace(); string tempSearchText = UnityDebugViewerWindowUtility.CopyPasteTextField(this.analysisSearchText, UnityDebugViewerWindowStyleUtility.toolbarSearchTextStyle, GUILayout.MinWidth(180f), GUILayout.MaxWidth(300f)); if (tempSearchText.Equals(this.analysisSearchText) == false) { /// update search result first this.editorManager.activeEditor.analysisDataManager.Search(tempSearchText); if (string.IsNullOrEmpty(tempSearchText) && string.IsNullOrEmpty(this.analysisSearchText) == false) { analysisDataTreeView.MoveToSelectedNode(analysisRect, ref this.analysisPanelScrollPos); } this.analysisSearchText = tempSearchText; } } GUILayout.EndHorizontal(); } GUILayout.EndArea(); GUILayout.BeginArea(analysisRect); { this.analysisPanelScrollPos = GUILayout.BeginScrollView(this.analysisPanelScrollPos); { analysisDataTreeView.DrawTreeLayout(analysisRect, ref this.analysisPanelScrollPos); } GUILayout.EndScrollView(); } GUILayout.EndArea(); /// draw title at last to make sure title is always on the top analysisDataTreeView.DrawColumnTitle(titleRect); }
private void DrawMenuBar() { menuBarRect = new Rect(0, 0, position.width, menuBarHeight); GUILayout.BeginArea(menuBarRect, EditorStyles.toolbar); { GUILayout.BeginHorizontal(); { if (GUILayout.Button(new GUIContent("Clear"), EditorStyles.toolbarButton, GUILayout.Width(40))) { this.editorManager.activeEditor.Clear(); } GUILayout.Space(5); EditorGUI.BeginChangeCheck(); collapse = GUILayout.Toggle(collapse, new GUIContent("Collapse"), EditorStyles.toolbarButton); if (EditorGUI.EndChangeCheck()) { this.logFilter.collapse = collapse; this.shouldUpdateLogFilter = true; PlayerPrefs.SetInt(CollapsePref, collapse ? 1 : 0); } EditorGUI.BeginChangeCheck(); clearOnPlay = GUILayout.Toggle(clearOnPlay, new GUIContent("Clear On Play"), EditorStyles.toolbarButton); errorPause = GUILayout.Toggle(errorPause, new GUIContent("Error Pause"), EditorStyles.toolbarButton); autoScroll = GUILayout.Toggle(autoScroll, new GUIContent("Auto Scroll"), EditorStyles.toolbarButton); GUILayout.Space(5); showlogAnalysis = GUILayout.Toggle(showlogAnalysis, new GUIContent("Show Analysis"), EditorStyles.toolbarButton); if (EditorGUI.EndChangeCheck()) { PlayerPrefs.SetInt(ClearOnPlayPref, clearOnPlay ? 1 : 0); PlayerPrefs.SetInt(ErrorPausePref, errorPause ? 1 : 0); PlayerPrefs.SetInt(AutoScrollPref, autoScroll ? 1 : 0); PlayerPrefs.SetInt(ShowAnalysisPref, showlogAnalysis ? 1 : 0); } GUILayout.Space(5); Vector2 size = EditorStyles.toolbarPopup.CalcSize(new GUIContent(this.editorManager.activeMode)); EditorGUI.BeginChangeCheck(); this.editorManager.activeModeIndex = EditorGUILayout.Popup(this.editorManager.activeModeIndex, this.editorManager.modeArray, EditorStyles.toolbarPopup, GUILayout.Width(size.x)); if (EditorGUI.EndChangeCheck()) { this.analysisDataTreeView = new UnityDebugViewerAnalysisDataTreeView(this.editorManager.activeEditor.analysisDataManager.root); this.shouldUpdateLogFilter = true; } this.editorManager.activeEditor.OnGUI(); GUILayout.FlexibleSpace(); string tempSearchText = UnityDebugViewerWindowUtility.CopyPasteTextField(this.searchText, UnityDebugViewerWindowStyleUtility.toolbarSearchTextStyle, GUILayout.MinWidth(180f), GUILayout.MaxWidth(300f)); if (tempSearchText.Equals(this.searchText) == false) { this.clearSearchText = string.IsNullOrEmpty(tempSearchText) && string.IsNullOrEmpty(this.searchText) == false; this.searchText = tempSearchText; this.logFilter.searchText = this.searchText; this.shouldUpdateLogFilter = true; } string logNum = this.editorManager.activeEditor.logNum.ToString(); string warningNum = this.editorManager.activeEditor.warningNum.ToString(); string errorNum = this.editorManager.activeEditor.errorNum.ToString(); EditorGUI.BeginChangeCheck(); searchWithRegex = GUILayout.Toggle(searchWithRegex, new GUIContent("Regex"), EditorStyles.toolbarButton); showTime = GUILayout.Toggle(showTime, new GUIContent("Time"), EditorStyles.toolbarButton); showLog = GUILayout.Toggle(showLog, new GUIContent(logNum, UnityDebugViewerWindowStyleUtility.infoIconSmallTexture), EditorStyles.toolbarButton); showWarning = GUILayout.Toggle(showWarning, new GUIContent(warningNum, UnityDebugViewerWindowStyleUtility.warningIconSmallTexture), EditorStyles.toolbarButton); showError = GUILayout.Toggle(showError, new GUIContent(errorNum, UnityDebugViewerWindowStyleUtility.errorIconSmallTexture), EditorStyles.toolbarButton); if (EditorGUI.EndChangeCheck()) { PlayerPrefs.SetInt(SearchWithRegexPref, searchWithRegex ? 1 : 0); PlayerPrefs.SetInt(ShowTimePref, showTime ? 1 : 0); PlayerPrefs.SetInt(ShowLogPref, showLog ? 1 : 0); PlayerPrefs.SetInt(ShowWarningPref, showWarning ? 1 : 0); PlayerPrefs.SetInt(ShowErrorPref, showError ? 1 : 0); this.logFilter.searchWithRegex = searchWithRegex; this.logFilter.showTime = showTime; this.logFilter.showLog = showLog; this.logFilter.showWarning = showWarning; this.logFilter.showError = showError; this.shouldUpdateLogFilter = true; } } GUILayout.EndHorizontal(); } GUILayout.EndArea(); }