protected override void RowGUI(RowGUIArgs args) { Event evt = Event.current; extraSpaceBeforeIconAndLabel = 18f; TenjinAssetViewItem avi = (TenjinAssetViewItem)args.item; Rect toggleRect = args.rowRect; toggleRect.x += GetContentIndent(args.item); toggleRect.width = 16f; //// Ensure row is selected before using the toggle (usability) if (evt.type == EventType.MouseDown && toggleRect.Contains(evt.mousePosition)) { SelectionClick(args.item, false); } EditorGUI.BeginChangeCheck(); bool selected = EditorGUI.Toggle(toggleRect, avi.selected); if (EditorGUI.EndChangeCheck()) { avi.selected = selected; SetSelectedRecursively(avi.children, selected); } // Text base.RowGUI(args); }
protected override TreeViewItem BuildRoot() { var selectedAssets = TenjinPackager.LoadManifest(); var assets = AssetDatabase.FindAssets(null, new[] { "Assets" }).Select(x => AssetDatabase.GUIDToAssetPath(x)); var root = new TenjinAssetViewItem { selected = false, id = 0, depth = -1, displayName = "Root" }; var allItems = assets.Select((a, index) => { return(new TenjinAssetViewItem { selected = selectedAssets.Contains(a), id = index, depth = DepthFromPath(a), displayName = a } as TreeViewItem); }).ToList(); SetupParentsAndChildrenFromDepths(root, allItems); return(root); }