UnityEditor.AudioMixersDataSource.InsertFakeItem C# (CSharp) Method

InsertFakeItem() public method

public InsertFakeItem ( int id, int parentID, string name, Texture2D icon ) : void
id int
parentID int
name string
icon UnityEngine.Texture2D
return void
        public override void InsertFakeItem(int id, int parentID, string name, Texture2D icon)
        {
            TreeViewItem item = this.FindItem(id);
            if (item != null)
            {
                Debug.LogError(string.Concat(new object[] { "Cannot insert fake Item because id is not unique ", id, " Item already there: ", item.displayName }));
            }
            else if (this.FindItem(parentID) == null)
            {
                Debug.LogError("No parent Item found with ID: " + parentID);
            }
            else
            {
                TreeViewItem rootItem;
                this.SetExpanded(parentID, true);
                IList<TreeViewItem> rows = this.GetRows();
                int indexOfID = TreeViewController.GetIndexOfID(rows, parentID);
                if (indexOfID >= 0)
                {
                    rootItem = rows[indexOfID];
                }
                else
                {
                    rootItem = base.m_RootItem;
                }
                int depth = rootItem.depth + 1;
                base.m_FakeItem = new TreeViewItem(id, depth, rootItem, name);
                base.m_FakeItem.icon = icon;
                int insertAfterItemIDForNewItem = this.GetInsertAfterItemIDForNewItem(name, rootItem);
                int index = TreeViewController.GetIndexOfID(rows, insertAfterItemIDForNewItem);
                if (index < 0)
                {
                    if (rows.Count > 0)
                    {
                        rows.Insert(0, base.m_FakeItem);
                    }
                    else
                    {
                        rows.Add(base.m_FakeItem);
                    }
                }
                else
                {
                    while (++index < rows.Count)
                    {
                        if (rows[index].depth <= depth)
                        {
                            break;
                        }
                    }
                    if (index < rows.Count)
                    {
                        rows.Insert(index, base.m_FakeItem);
                    }
                    else
                    {
                        rows.Add(base.m_FakeItem);
                    }
                }
                base.m_NeedRefreshRows = false;
                base.m_TreeView.Frame(base.m_FakeItem.id, true, false);
                base.m_TreeView.Repaint();
            }
        }