static void CategoryTreeViewItemGUI( Rect rowRect, float rowHeight, ChangeCategoryTreeViewItem item, int solvedChildrenCount, bool isSelected, bool isFocused) { Texture icon = GetCategoryIcon(item.Category.CategoryType); string label = item.Category.GetHeaderText(); DefaultStyles.label = GetCategoryStyle( item.Category, solvedChildrenCount, isSelected); DrawTreeViewItem.ForCategoryItem( rowRect, rowHeight, item.depth, icon, label, isSelected, isFocused); DefaultStyles.label = UnityStyles.Tree.Label; }
static bool ShouldExpandCategory( IncomingChangesTreeView treeView, ChangeCategoryTreeViewItem categoryTreeViewItem, bool expandCategories, int categoriesCount) { if (expandCategories) { if (categoriesCount == 1) { return(true); } if (categoryTreeViewItem.Category.CategoryType == IncomingChangesCategory.Type.FileConflicts) { return(true); } if (categoryTreeViewItem.Category.GetChangesCount() > NODES_TO_EXPAND_CATEGORY) { return(false); } return(true); } return(treeView.IsExpanded(categoryTreeViewItem.id)); }
protected override void RowGUI(RowGUIArgs args) { DrawTreeViewItem.InitializeStyles(); if (args.item is ChangeCategoryTreeViewItem) { ChangeCategoryTreeViewItem categoryItem = (ChangeCategoryTreeViewItem)args.item; CategoryTreeViewItemGUI( args.rowRect, rowHeight, categoryItem, GetSolvedChildrenCount(categoryItem.Category, mSolvedFileConflicts), args.selected, args.focused); return; } if (args.item is ChangeTreeViewItem) { ChangeTreeViewItem changeTreeViewItem = (ChangeTreeViewItem)args.item; IncomingChangeInfo changeInfo = changeTreeViewItem.ChangeInfo; bool isCurrentConflict = IsCurrent.Conflict( changeInfo, mIncomingChangesTree.GetMetaChange(changeInfo), mSolvedFileConflicts); bool isSolvedConflict = IsSolved.Conflict( changeInfo, mIncomingChangesTree.GetMetaChange(changeInfo), mSolvedFileConflicts); IncomingChangeTreeViewItemGUI( mWkInfo.ClientPath, mIncomingChangesTree, this, changeTreeViewItem, args, isCurrentConflict, isSolvedConflict); return; } base.RowGUI(args); }
static void RegenerateRows( UnityIncomingChangesTree incomingChangesTree, TreeViewItemIds <IncomingChangesCategory, IncomingChangeInfo> treeViewItemIds, IncomingChangesTreeView treeView, TreeViewItem rootItem, List <TreeViewItem> rows, bool expandCategories) { if (incomingChangesTree == null) { return; } ClearRows(rootItem, rows); List <IncomingChangesCategory> categories = incomingChangesTree.GetNodes(); if (categories == null) { return; } List <int> categoriesToExpand = new List <int>(); foreach (IncomingChangesCategory category in categories) { int categoryId; if (!treeViewItemIds.TryGetCategoryItemId(category, out categoryId)) { categoryId = treeViewItemIds.AddCategoryItem(category); } ChangeCategoryTreeViewItem categoryTreeViewItem = new ChangeCategoryTreeViewItem(categoryId, category); rootItem.AddChild(categoryTreeViewItem); rows.Add(categoryTreeViewItem); if (!ShouldExpandCategory( treeView, categoryTreeViewItem, expandCategories, categories.Count)) { continue; } categoriesToExpand.Add(categoryTreeViewItem.id); foreach (IncomingChangeInfo changeInfo in category.GetChanges()) { int differenceId; if (!treeViewItemIds.TryGetInfoItemId(changeInfo, out differenceId)) { differenceId = treeViewItemIds.AddInfoItem(changeInfo); } TreeViewItem changeTreeViewItem = new ChangeTreeViewItem(differenceId, changeInfo); categoryTreeViewItem.AddChild(changeTreeViewItem); rows.Add(changeTreeViewItem); } } treeView.state.expandedIDs = categoriesToExpand; }