void CellGUI(Rect cellRect, DataStreamEntry item, int column) { switch (column) { case 0: { var maximized = IsItemMaximized(item.id); if (UnityEngine.GUI.Button(cellRect, maximized ? m_MinusGUIContent : m_PlusGUIContent, EditorStyles.toolbarButton)) { if (!IsSelected(item.id)) { m_MaximizedState[item.id] = !maximized; } else { foreach (var i in GetSelection()) { m_MaximizedState[i] = !maximized; } } Reload(); m_LastReloadTime = Time.unscaledTime; } } break; case 1: { cellRect.xMin += (GetContentIndent(item) + extraSpaceBeforeIconAndLabel); EditorGUI.LabelField(cellRect, item.Content); } break; case 2: DrawGraph(item.Entry, cellRect, visibleStartTime, visibleDuration, IsItemMaximized(item.id)); break; } }
DataStreamEntry AddItems(DataStreamEntry root) { root.children = new List <TreeViewItem>(); if (!root.Entry.HasChildren) { return(root); } List <EventDataSet> entries = new List <EventDataSet>(); foreach (var e in root.Entry.Children) { if (!e.HasDataAfterFrame(visibleStartTime)) { continue; } if (m_FilterFunc(e.Graph)) { entries.Add(e); } } if (m_DataSetComparer != null) { entries.Sort(m_DataSetComparer); } foreach (var e in entries) { var dse = new DataStreamEntry(e, root.depth + 1); root.AddChild(dse); AddItems(dse); } return(root); }