private void DrawItemBackground(Rect bgRect, VLog log) { #if UNITY_2017_3_OR_NEWER if (Event.current.type == EventType.Repaint) #else if (Event.current.type == EventType.repaint) #endif { var originalColor = GUI.color; GUI.color = AssetValidatorGraphicsUtility.GetVLogHeaderColor(log); var rect = bgRect; rect.height = 25f; AssetValidatorGraphicsUtility.Styles.HeaderBackground.Draw(rect, false, false, false, false); GUI.color = originalColor; if (log == null) { return; } rect.y += rect.height; rect.height = bgRect.height - rect.height; AssetValidatorGraphicsUtility.Styles.BodyBackground.Draw(rect, false, false, false, false); } }
private void OnHeaderGUI(Rect headerRect, string label, TreeViewItem treeViewItem) { var vLogTreeViewItem = treeViewItem as VLogTreeViewItem; var vLogTreeViewHeader = treeViewItem as VLogTreeViewHeader; var vLog = vLogTreeViewItem != null ? vLogTreeViewItem.Log : null; var style = AssetValidatorGraphicsUtility.GetVLogHeaderStyle(vLog); headerRect.y += 1f; // Do toggle var toggleRect = headerRect; toggleRect.width = 16f; var labelRect = new Rect(headerRect); labelRect.xMin += toggleRect.width + 2f; if (vLogTreeViewHeader != null) { labelRect.width -= 150f; GUI.Label(labelRect, label, style); var fieldRect = new Rect(labelRect) { xMin = labelRect.xMin + labelRect.width, width = 50f }; // Now that we have drawn our title, lets draw the aggregate logs if possible GUI.Label(fieldRect, new GUIContent(vLogTreeViewHeader.infoCount.ToString(), AssetValidatorGraphicsUtility.InfoIconSmall)); //, EditorStyles.toolbarButton); fieldRect.x += 50f; GUI.Label(fieldRect, new GUIContent(vLogTreeViewHeader.warningCount.ToString(), AssetValidatorGraphicsUtility.WarningIconSmall)); //, EditorStyles.toolbarButton); fieldRect.x += 50f; GUI.Label(fieldRect, new GUIContent(vLogTreeViewHeader.errorCount.ToString(), AssetValidatorGraphicsUtility.ErrorIconSmall)); //, EditorStyles.toolbarButton); } else { GUI.Label(labelRect, label, style); } }
private void OnControlsGUI(Rect controlsRect, VLogTreeViewItem viewItem) { var rect = controlsRect; rect.y += 3f; rect.height = EditorGUIUtility.singleLineHeight; var prefixRect = new Rect(rect) { width = 80f }; var fieldRect = new Rect(rect) { width = rect.width - prefixRect.width, x = rect.x + prefixRect.width }; EditorGUI.LabelField(prefixRect, "Area: ", EditorStyles.boldLabel); EditorGUI.LabelField(fieldRect, viewItem.Log.GetSourceDescription()); fieldRect.y = prefixRect.y += rect.height + EditorGUIUtility.standardVerticalSpacing; fieldRect.height = EditorGUIUtility.singleLineHeight; EditorGUI.LabelField(prefixRect, "Object: ", EditorStyles.boldLabel); EditorGUI.LabelField(fieldRect, viewItem.Log.objectPath); fieldRect.y = prefixRect.y += rect.height + EditorGUIUtility.standardVerticalSpacing; fieldRect.height = (rect.height + EditorGUIUtility.standardVerticalSpacing) * 2f; var charactersPerRow = GetCharactersPerRow(fieldRect, viewItem.Log); var multiLineMessage = AssetValidatorGraphicsUtility.GetMultilineString(viewItem.Log.message, charactersPerRow); fieldRect.height = 2 * (EditorGUIUtility.standardVerticalSpacing + EditorGUIUtility.singleLineHeight); EditorGUI.LabelField(prefixRect, "Message: ", EditorStyles.boldLabel); EditorGUI.TextArea(fieldRect, multiLineMessage, EditorStyles.label); EditorGUI.LabelField(fieldRect, multiLineMessage); rect.y = fieldRect.y + fieldRect.height + EditorGUIUtility.standardVerticalSpacing; var buttonRect = rect; buttonRect.width = 200f; buttonRect.height *= 1.25f; if ((viewItem.Log.source == VLogSource.Scene || viewItem.Log.source == VLogSource.Project) && viewItem.Log.HasObjectPath()) { EditorGUI.BeginDisabledGroup(!viewItem.Log.CanPingObject()); if (GUI.Button(buttonRect, "Ping Object")) { if (OnPingObject != null) { OnPingObject(viewItem.Log); } } EditorGUI.EndDisabledGroup(); } buttonRect.x += 220f; if (viewItem.Log.source == VLogSource.Scene) { EditorGUI.BeginDisabledGroup(!viewItem.Log.CanLoadScene()); if (GUI.Button(buttonRect, "Load Scene")) { if (OnLoadScene != null) { OnLoadScene(viewItem.Log); } } EditorGUI.EndDisabledGroup(); } }