void InitIfNeeded() { if (!m_Initialized) { if (treeViewState == null) { treeViewState = new TreeViewState(); } bool firstInit = m_MultiColumnHeaderState == null; var headerState = DefaultMultiColumnHeaderState(multiColumnTreeViewRect.width); if (MultiColumnHeaderState.CanOverwriteSerializedFields(m_MultiColumnHeaderState, headerState)) { MultiColumnHeaderState.OverwriteSerializedFields(m_MultiColumnHeaderState, headerState); } m_MultiColumnHeaderState = headerState; var multiColumnHeader = new MyMultiColumnHeader(headerState); if (firstInit) { multiColumnHeader.ResizeToFit(); } var treeModel = new TreeModel <PrefabHierarchyElement>(PrefabHierarchyTreeView.GetPrefabHierachyElements()); treeView = new PrefabHierarchyTreeView(treeViewState, multiColumnHeader, treeModel); m_SearchField = new SearchField(); m_SearchField.downOrUpArrowKeyPressed += treeView.SetFocusAndEnsureSelectedItem; m_Initialized = true; } }
public static List <PrefabDataHolder> PrefabDataFromSelection(PrefabHierarchyTreeView treeView) { List <PrefabDataHolder> prefabDataList = new List <PrefabDataHolder>(); foreach (var item in treeView.GetSelection()) { prefabDataList.Add(treeView.treeModel.Find(item).prefabDataHolder); } return(prefabDataList); }
public static PrefabDataHolder[] PrefabDataFromSelection(PrefabHierarchyTreeView treeView) { var selection = treeView.GetSelection(); var treeList = treeView.treeModel.m_Data.ToList(); PrefabDataHolder[] prefabDataList = new PrefabDataHolder[selection.Count]; Parallel.For(0, selection.Count, i => { prefabDataList[i] = treeList.Find(x => x.id == selection.ElementAt(i)).prefabDataHolder; }); return(prefabDataList); }
public static void PrefabHierachyOptions(PrefabHierarchyTreeView treeView, ref string name, ref bool replace) { Elements.MiniBoldLabel(ToolTips.hierachyOptionsLabel); Elements.BeginToolbarHorizontal(); name = Elements.ToolbarTextField(name); Elements.EndToolbarHorizontal(); Elements.BeginToolbarHorizontal(); if (Elements.ToolbarButton(ToolTips.hierachyCategoryRename)) { name = String.IsNullOrEmpty(name) ? "" : name; PrefabManager.RenamePrefabCategories(PrefabHierarchyTreeView.PrefabDataFromSelection(treeView), name); ReloadTreeViews(); } Elements.EndToolbarHorizontal(); Elements.BeginToolbarHorizontal(); replace = Elements.ToolbarToggle(ToolTips.hierachyReplace, replace); if (Elements.ToolbarButton(ToolTips.hierachyIDRename)) { if (uint.TryParse(name, out uint result)) { PrefabManager.RenamePrefabIDs(PrefabHierarchyTreeView.PrefabDataFromSelection(treeView), result, replace); ReloadTreeViews(); } } Elements.EndToolbarHorizontal(); Elements.BeginToolbarHorizontal(); if (Elements.ToolbarButton(ToolTips.hierachyDelete)) { PrefabManager.DeletePrefabs(PrefabHierarchyTreeView.PrefabDataFromSelection(treeView)); } Elements.EndToolbarHorizontal(); }
void DrawOptions(Rect rect) { GUILayout.BeginArea(rect); Functions.HierachyOptions(PrefabHierarchyTreeView.PrefabDataFromSelection(treeView).ToArray(), ref category); GUILayout.EndArea(); }