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();
}
}