UnityEditor.HeapshotWindow.DoHeapshotObjects C# (CSharp) Method

DoHeapshotObjects() private method

private DoHeapshotObjects ( List objects, SplitterState splitter, int indent, OnSelect onSelect ) : void
objects List
splitter SplitterState
indent int
onSelect OnSelect
return void
        private void DoHeapshotObjects(List<HeapshotUIObject> objects, SplitterState splitter, int indent, OnSelect onSelect)
        {
            if (objects != null)
            {
                Event current = Event.current;
                foreach (HeapshotUIObject obj2 in objects)
                {
                    Rect position = new Rect(14f * indent, this.guiRect.y, 14f, this.guiRect.height);
                    Rect[] rectArray = new Rect[this.titleNames.Length];
                    float x = 14f * (indent + 1);
                    for (int i = 0; i < rectArray.Length; i++)
                    {
                        float width = (i != 0) ? ((float) splitter.realSizes[i]) : (splitter.realSizes[i] - x);
                        rectArray[i] = new Rect(x, this.guiRect.y, width, this.guiRect.height);
                        x += width;
                    }
                    if (current.type == EventType.Repaint)
                    {
                        Rect rect2 = new Rect(0f, 16f * this.itemIndex, base.position.width, 16f);
                        (((this.itemIndex & 1) != 0) ? Styles.entryOdd : Styles.entryEven).Draw(rect2, GUIContent.none, false, false, this.itemIndex == this.selectedItem, false);
                    }
                    if (obj2.HasChildren)
                    {
                        GUI.changed = false;
                        bool flag = GUI.Toggle(position, obj2.IsExpanded, GUIContent.none, Styles.foldout);
                        if (GUI.changed)
                        {
                            if (flag)
                            {
                                obj2.Expand();
                            }
                            else
                            {
                                obj2.Collapse();
                            }
                        }
                    }
                    GUI.changed = false;
                    bool flag2 = GUI.Toggle(rectArray[0], this.itemIndex == this.selectedItem, obj2.Name, Styles.numberLabel);
                    if (!obj2.IsDummyObject)
                    {
                        GUI.Toggle(rectArray[1], this.itemIndex == this.selectedItem, obj2.TypeName, Styles.numberLabel);
                        GUI.Toggle(rectArray[2], this.itemIndex == this.selectedItem, "0x" + obj2.Code.ToString("X"), Styles.numberLabel);
                        GUI.Toggle(rectArray[3], this.itemIndex == this.selectedItem, obj2.Size.ToString(), Styles.numberLabel);
                        GUI.Toggle(rectArray[4], this.itemIndex == this.selectedItem, string.Format("{0} / {1}", obj2.ReferenceCount, obj2.InverseReferenceCount), Styles.numberLabel);
                        if ((GUI.changed && flag2) && (onSelect != null))
                        {
                            this.selectedItem = this.itemIndex;
                            onSelect(obj2);
                        }
                    }
                    this.itemIndex++;
                    this.guiRect.y += 16f;
                    this.DoHeapshotObjects(obj2.Children, splitter, indent + 1, onSelect);
                }
            }
        }