public TreeViewItemState Show() { scrollView = GUILayout.BeginScrollView(scrollView); for (int i = 0; i < ViewList.Count; i++) { var treeViewItem = this.ViewList[i]; var treeViewItemState = treeViewItem.Show(); if (treeViewItemState.SelectOperation == TreeViewSelectOperation.Select) { this.SelectItem(treeViewItem, GUITreeView.CurrEvent.control); } else if (treeViewItemState.SelectOperation == TreeViewSelectOperation.Deselect) { if (GUITreeView.CurrEvent.control) { this.DeselectItem(treeViewItem); } else { this.SelectItem(treeViewItem, GUITreeView.CurrEvent.control); } } if (treeViewItemState.OpenOperation == TreeViewOpenOperation.Open) { OpenItem(treeViewItem); } else if (treeViewItemState.OpenOperation == TreeViewOpenOperation.Close) { CloseItem(treeViewItem); } } GUILayout.EndScrollView(); Operation(); if (this.renameInputWindow != null) { this.renameInputWindow.PopWindow(); this.renameInputWindow = null; } return(new TreeViewItemState()); }
private void Rename() { if (lastSelectData == null) { return; } this.renameInputWindow = new PopInputWindow(); this.renameInputWindow.InputString = lastSelectData.Name; if (lastSelectData is ITreeViewDirectory) { this.renameInputWindow.OnInput = (newName) => { if (newName.IsNullOrEmpty()) { return; } var treeViewDirectory = this.lastSelectData as ITreeViewDirectory; treeViewDirectory.Name = newName; var moveItems = new List <ITreeViewItem>(); treeViewDirectory.BuildItemList(moveItems, -1, true); foreach (var item in moveItems) { var treeViewLeafItem = item as TreeViewLeafItem; if (treeViewLeafItem != null) { var toPath = this.GetPath(item); if (OnPathUpdate != null) { OnPathUpdate(treeViewLeafItem.userdata, toPath); } } } }; } else if (lastSelectData is TreeViewLeafItem) { this.renameInputWindow.OnInput = (newName) => { OnRename((lastSelectData as TreeViewLeafItem).userdata, newName); }; } EditorWindow.focusedWindow.Repaint(); }