protected override void RowGUI(RowGUIArgs args) { var evt = Event.current; var rowRect = args.rowRect; isRenaming = isRenaming || args.isRenaming; if (args.item is SearchQueryCategoryTreeViewItem ctvi) { if (evt.type == EventType.Repaint) { Styles.categoryLabel.Draw(rowRect, rowRect.Contains(evt.mousePosition), false, false, false); } EditorGUI.BeginDisabledGroup(!searchView.CanSaveQuery()); var addBtn = new Rect(rowRect.xMax - 21f, rowRect.y, 22f, 22f); if (GUI.Button(addBtn, ctvi.addBtnContent, Styles.toolbarButton)) { switch (ctvi.content.text) { case userQuery: searchView.SaveUserSearchQuery(); break; case projectQuery: searchView.SaveProjectSearchQuery(); break; } } EditorGUI.EndDisabledGroup(); var labelBtn = rowRect; labelBtn.width -= 20f; if (GUI.Button(labelBtn, Utils.GUIContentTemp($"{ctvi.content.text} ({ctvi.children.Count})", ctvi.content.tooltip), Styles.categoryLabel)) { SetExpanded(args.item.id, !IsExpanded(args.item.id)); } } else if (args.item is SearchQueryTreeViewItem tvi) { if (!tvi.IsValid()) { SearchQueryAsset.ResetSearchQueryItems(); Reload(); return; } if (!args.isRenaming && evt.type == EventType.Repaint) { var hovered = rowRect.Contains(evt.mousePosition); using (var view = SearchMonitor.GetView()) { if (tvi.query != null) { DrawQueryLabelAndIcon(rowRect, args, tvi, hovered, true); DrawItemCount(tvi.query.itemCount, rowRect, hovered, args.selected); } } } } }
public SearchQueryAssetTreeViewItem(SearchQueryTreeView treeView, SearchQueryAsset query) : base(treeView, query.name, query.thumbnail) { m_Query = query; id = m_Query.guid.GetHashCode(); }