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();
        }
Пример #2
0
        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();
        }