protected override void RowGUI(TreeView.RowGUIArgs args) { Rect rowSpace = args.rowRect; EZMTreeViewItem entityTreeItem = args.item as EZMTreeViewItem; var childOptions = entityTreeItem.GetChildOptions(); if (childOptions != null) { if (GUI.Button(rowSpace.WithSize(new Vector2(17.5f, 17.5f)).WithX(rowSpace.xMax - 20), "+", EditorStyles.centeredGreyMiniLabel)) { GenericMenu gm = new GenericMenu(); for (int i = 0; i < childOptions.Length; i++) { var type = childOptions[i]; gm.AddItem(new GUIContent("Add " + childOptions[i].Name), false, () => { AddElement(entityTreeItem, type); Reload(); }); } gm.ShowAsContext(); } } base.RowGUI(args); }
protected override void SelectionChanged(IList <int> selectedIds) { base.SelectionChanged(selectedIds); List <EZMTreeViewItem> selectedItems = new List <EZMTreeViewItem>(); for (int i = 0; i < selectedIds.Count; i++) { int currentSelectedID = selectedIds[i]; EZMTreeViewItem selectedItem = FindItem(currentSelectedID, rootItem) as EZMTreeViewItem; selectedItems.Add(selectedItem); } OnSelectionChanged?.Invoke(selectedItems); }
private void AddElement(EZMTreeViewItem parentItem, System.Type type) { }