Example #1
0
        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);
        }
Example #2
0
        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);
            });
        }
Example #3
0
        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);
        }