コード例 #1
0
        void UpdateEventCallbacks(EventDebuggerEventRecord eventBase)
        {
            ClearEventCallbacks();

            if (eventBase == null)
            {
                return;
            }

            var callbacks = m_Debugger.GetCalls(panel, eventBase);

            if (callbacks != null)
            {
                foreach (EventDebuggerCallTrace callback in callbacks)
                {
                    VisualElement container = new VisualElement {
                        name = "line-container"
                    };

                    Label timeStamp = new Label {
                        name = "timestamp"
                    };
                    Label handler = new Label {
                        name = "handler"
                    };
                    Label phaseDurationContainer = new Label {
                        name = "phaseDurationContainer"
                    };
                    Label phase = new Label {
                        name = "phase"
                    };
                    Label duration = new Label {
                        name = "duration"
                    };

                    timeStamp.AddToClassList("log-line-item");
                    handler.AddToClassList("log-line-item");
                    phaseDurationContainer.AddToClassList("log-line-item");

                    timeStamp.text = "[" + eventBase.TimestampString() + "]";
                    handler.text   = callback.callbackName;
                    if (callback.immediatePropagationHasStopped)
                    {
                        handler.text += " Immediately Stopped Propagation";
                    }
                    else if (callback.propagationHasStopped)
                    {
                        handler.text += " Stopped Propagation";
                    }
                    if (callback.defaultHasBeenPrevented)
                    {
                        handler.text += " (Default Prevented)";
                    }

                    phase.text    = callback.eventBase.propagationPhase.ToString();
                    duration.text = "Duration: " + callback.duration / 1000f + "ms";

                    container.Add(timeStamp);
                    container.Add(handler);
                    phaseDurationContainer.Add(phase);
                    phaseDurationContainer.Add(duration);
                    container.Add(phaseDurationContainer);

                    m_EventCallbacksScrollView.Add(container);

                    var hash = callback.callbackHashCode;
                    HighlightCodeline(hash);
                }
            }

            var defaultActions = m_Debugger.GetDefaultActions(panel, eventBase);

            if (defaultActions == null)
            {
                return;
            }

            foreach (EventDebuggerDefaultActionTrace defaultAction in defaultActions)
            {
                VisualElement container = new VisualElement {
                    name = "line-container"
                };

                Label timeStamp = new Label {
                    name = "timestamp"
                };
                Label handler = new Label {
                    name = "handler"
                };
                Label phaseDurationContainer = new Label {
                    name = "phaseDurationContainer"
                };
                Label phase = new Label {
                    name = "phase"
                };
                Label duration = new Label {
                    name = "duration"
                };

                timeStamp.AddToClassList("log-line-item");
                handler.AddToClassList("log-line-item");
                phaseDurationContainer.AddToClassList("log-line-item");

                timeStamp.text = "[" + eventBase.TimestampString() + "]";
                handler.text   = defaultAction.targetName + "." +
                                 (defaultAction.phase == PropagationPhase.AtTarget
                        ? "ExecuteDefaultActionAtTarget"
                        : "ExecuteDefaultAction");

                duration.text = "Duration: " + defaultAction.duration / 1000f + "ms";

                container.Add(timeStamp);
                container.Add(handler);
                phaseDurationContainer.Add(phase);
                phaseDurationContainer.Add(duration);
                container.Add(phaseDurationContainer);

                m_EventCallbacksScrollView.Add(container);
            }
        }