public bool Draw() { if (fc.nChunks > 0 && fc.nScaned < fc.nChunks) { var rect = GUILayoutUtility.GetRect(1, Screen.width, 18f, 18f); var p = fc.nScaned / (float)fc.nChunks; EditorGUI.ProgressBar(rect, p, string.Format("Scanning {0} / {1}", fc.nScaned, fc.nChunks)); GUILayout.FlexibleSpace(); return(true); } if (tree != null) { tree.Draw(duplicated); } else { if (Event.current.type == EventType.Repaint && fc.nChunks == 0) { Reset(FR2_Cache.Api.ScanSimilar()); } } return(false); }
private void DrawUnused() { if (unusedArray == null) { unusedArray = new List <FR2_Asset>(); } if (unusedScroller == null) { unusedScroller = new FR2_TreeUI(); } unusedScroller.Draw(unusedArray.Count, (idx, r, s) => { var item = unusedArray[idx]; item.Draw(r, false, false); }); }
public void Draw() { if (DrawList.Count == 0) { return; } if (DrawList[Drawer.selected] != selected) { //selection changed : refresh ! var item = DrawList[Drawer.selected]; if (item == null) { Debug.LogWarning("Something wrong, item should not be null <" + Drawer.selected + ">" + item); return; } FR2_RefTreeItem <T> pInfo; selected = item; selectedParents.Clear(); while (Map.TryGetValue(item, out pInfo)) { item = pInfo.parent; if (item != null) { selectedParents.Add(item); } else { break; } } } Drawer.Draw(DrawList.Count, (idx, rect, hasMouse) => { var item = DrawList[idx]; var offset = 4f; FR2_RefTreeItem <T> info; if (Map.TryGetValue(item, out info)) { offset += Map[item].level * 16f; } LeftRect(offset, ref rect); var highlight = info != null && selectedParents.Contains(info.item); ItemDrawer(DrawList[idx], rect, highlight); }, false); var bDrawer = BriefDrawer != null ? BriefDrawer : ItemDrawer; var count = selectedParents.Count - 1; for (var i = count; i >= 0; i--) { var asset = selectedParents[i]; var r = GUILayoutUtility.GetRect(1f, Screen.width, 16f, 16f); //var hasMouse = Event.current.type == EventType.mouseUp && r.Contains(Event.current.mousePosition); LeftRect((count - i) * 16f, ref r); bDrawer(asset, r, false); } var r2 = GUILayoutUtility.GetRect(1f, Screen.width, 16f, 16f); //var hasMouse2 = Event.current.type == EventType.mouseUp && r2.Contains(Event.current.mousePosition); LeftRect(selectedParents.Count * 16f, ref r2); bDrawer(selected, r2, true); }