示例#1
0
        private void RenderActiveRow(LogMessage logMessage, float estimatedHeight)
        {
            // set the content colour
            StateColour levelColour = GetStateColorByLevel(logMessage.level);

            messageDetailStyle.normal.textColor         = levelColour.selected;
            messageDetailStyleSelected.normal.textColor = levelColour.selected;
            boxStyleSelected.normal.textColor           = levelColour.selected;
            numberStyleSelected.normal.textColor        = levelColour.selected;
            boxStyle.normal.textColor    = levelColour.selected;
            numberStyle.normal.textColor = levelColour.selected;

            // estimate the height needed for our label, subtract sum of padding + width for two lhs columns
            string fullMessage = logMessage.message;

            if (logMessage.stack != null && logMessage.stack.Length > 0)
            {
                fullMessage += "\n" + logMessage.stack;
            }

            // fetch bounds to make it clickable
            GUILayout.BeginVertical(selectedStyle, GUILayout.Width(position.width), GUILayout.Height(estimatedHeight));
            Rect bounds = EditorGUILayout.BeginHorizontal(GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));

            EditorGUILayout.BeginVertical(GUIStyle.none, GUILayout.Width(72f));
            GUILayout.Space(2f);
            GUILayout.Label(logMessage.category.ToString(), boxStyleSelected);
            GUILayout.Label(logMessage.level.ToString(), boxStyle);
            EditorGUILayout.EndVertical();

            EditorGUILayout.BeginVertical(GUIStyle.none, GUILayout.Width(96f));
            GUILayout.Space(2f);
            GUILayout.Label(logMessage.time.ToString("F2"), numberStyleSelected, GUILayout.Width(96f));
            GUILayout.Label(logMessage.frame.ToString("F0"), numberStyle, GUILayout.Width(96f));
            EditorGUILayout.EndVertical();

            EditorGUILayout.BeginVertical(GUIStyle.none, GUILayout.ExpandWidth(true));
            GUILayout.Label(logMessage.message, messageDetailStyleSelected, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
            GUILayout.Label(logMessage.stack, messageDetailStyle, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
            EditorGUILayout.EndVertical();

            EditorGUILayout.EndHorizontal();
            GUILayout.EndVertical();

            // check if the user wants to close this expanded view or not
            if (GUI.Button(bounds, GUIContent.none, GUIStyle.none))
            {
                activeMessage = null;
                pauseFrame    = null;
            }
        }
示例#2
0
        private void InitializeColors()
        {
            // check if we are setting for pro or basic unity3d
            if (EditorGUIUtility.isProSkin)
            {
                // set default text color
                defaultTextColour          = new StateColour();
                defaultTextColour.normal   = new Color(0.85f, 0.85f, 0.85f, 1f);
                defaultTextColour.selected = new Color(0.85f, 0.85f, 0.85f, 1f);

                // set text colours
                levelColours[Log.Level.Critical]          = new StateColour();
                levelColours[Log.Level.Critical].normal   = new Color(0.9f, 0.47f, 0.47f, 1f);
                levelColours[Log.Level.Critical].selected = new Color(0.95f, 0.75f, 0.75f, 1f);

                levelColours[Log.Level.Important]          = new StateColour();
                levelColours[Log.Level.Important].normal   = new Color(0.85f, 0.75f, 0.15f, 1f);
                levelColours[Log.Level.Important].selected = new Color(0.85f, 0.75f, 0.15f, 1f);
            }
            else
            {
                // set default background color
                defaultTextColour          = new StateColour();
                defaultTextColour.normal   = Color.black;
                defaultTextColour.selected = Color.white;

                // set text colours
                levelColours[Log.Level.Critical]          = new StateColour();
                levelColours[Log.Level.Critical].normal   = new Color(0.55f, 0.1f, 0.1f, 1f);
                levelColours[Log.Level.Critical].selected = new Color(0.95f, 0.75f, 0.75f, 1f);

                levelColours[Log.Level.Important]          = new StateColour();
                levelColours[Log.Level.Important].normal   = new Color(0.55f, 0.42f, 0.1f, 1f);
                levelColours[Log.Level.Important].selected = Color.yellow;
            }
        }