private void ContextClickOutsideItemsCallback() { GenericMenu g = new GenericMenu(); g.AddItem(new GUIContent("Create Item"), false, () => { Undo.RecordObject(m_DataContainer, "Create Item"); TreeViewItem item = null; if (m_TreeView.state.selectedIDs != null && m_TreeView.state.selectedIDs.Count > 0) { item = m_TreeView.data.FindItem(m_TreeView.state.selectedIDs[0]); } if (item == null) { item = m_TreeView.data.root; } var id = m_DataContainer.GetAutoID(); var newItem = new TreeViewItem(id, 0, item, "New Item"); newItem.SetConfigSource(WindowConfigSource); item.AddChild(newItem); m_TreeView.SetSelection(new int[] { newItem.id }, true); m_TreeView.data.RefreshData(); WindowConfigSource.SetConfigDirty(); }); g.ShowAsContext(); }
private void UpdateItemInfo(TreeViewItem item, List <int> idList, bool first) { var id = m_TreeItemContainer.GetAutoID(); item.id = id; if (first) { idList.Add(id); } item.SetConfigSource(m_ConfigSource); if (item.hasChildren) { foreach (var child in item.children) { UpdateItemInfo(child, idList, false); } } }
private void ContextClickItemCallback(int itemId) { GenericMenu g = new GenericMenu(); g.AddItem(new GUIContent("Create Item"), false, () => { Undo.RecordObject(m_DataContainer, "Create Item"); var item = m_TreeView.data.FindItem(itemId); var id = m_DataContainer.GetAutoID(); var newItem = new TreeViewItem(id, item.depth + 1, item, "New Item"); newItem.SetConfigSource(WindowConfigSource); item.AddChild(newItem); m_TreeView.SetSelection(new int[] { newItem.id }, true); m_TreeView.data.RefreshData(); }); g.AddItem(new GUIContent("Ping Item"), false, () => { var item = m_TreeView.data.FindItem(m_TreeView.state.selectedIDs[0]); m_TreeView.Frame(item.id, true, true); }); g.ShowAsContext(); Event.current.Use(); }