protected override void RowGUI(RowGUIArgs args)
 {
     base.RowGUI(args);
 }
示例#2
0
        private void CellGUI(Rect cellRect, AssetBundleModel.AssetTreeItem item, int column, ref RowGUIArgs args)
        {
            Color oldColor = GUI.color;

            CenterRectUsingSingleLineHeight(ref cellRect);
            if (column != 3)
            {
                GUI.color = item.itemColor;
            }

            switch (column)
            {
            case 0:
            {
                var iconRect = new Rect(cellRect.x + 1, cellRect.y + 1, cellRect.height - 2, cellRect.height - 2);
                if (item.icon != null)
                {
                    GUI.DrawTexture(iconRect, item.icon, ScaleMode.ScaleToFit);
                }
                DefaultGUI.Label(
                    new Rect(cellRect.x + iconRect.xMax + 1, cellRect.y, cellRect.width - iconRect.width, cellRect.height),
                    item.displayName,
                    args.selected,
                    args.focused);
            }
            break;

            case 1:
                DefaultGUI.Label(cellRect, item.AssetInfo.bundleName, args.selected, args.focused);
                break;

            case 2:
                DefaultGUI.Label(cellRect, item.AssetInfo.GetSizeString(), args.selected, args.focused);
                break;

            case 3:
                var icon = item.MessageIcon;
                if (icon != null)
                {
                    var iconRect = new Rect(cellRect.x, cellRect.y, cellRect.height, cellRect.height);
                    GUI.DrawTexture(iconRect, icon, ScaleMode.ScaleToFit);
                }
                break;
            }
            GUI.color = oldColor;
        }
        /// <summary>
        /// TreeViewの列の描画
        /// </summary>
        protected override void RowGUI(RowGUIArgs args)
        {
            var item = args.item as TreeViewItem;

            for (var visibleColumnIndex = 0; visibleColumnIndex < args.GetNumVisibleColumns(); visibleColumnIndex++)
            {
                var rect = args.GetCellRect(visibleColumnIndex);
                rect.y      += 1f;
                rect.height -= 2f;

                var columnIndex = args.GetColumn(visibleColumnIndex);
                var labelStyle  = args.selected ? EditorStyles.whiteLabel : EditorStyles.label;
                labelStyle.alignment = TextAnchor.MiddleCenter;

                var element = baseElements[args.item.id];

                bool changeValue1 = false;
                bool changeValue2 = false;
                bool changeValue3 = false;
                bool changeValue4 = false;
                switch (columnIndex)
                {
                case 0:     // 備考
                    rect.x      += 2f;
                    rect.width  -= 4f;
                    element.Name = EditorGUI.TextField(rect, element.Name);
                    break;

                case 1:     // 数値1:数値2
                    rect.width -= valueFieldSpace + valueFieldMarginLeft + valueFieldMarginRight;
                    rect.width /= 2f;

                    EditorGUI.BeginChangeCheck();
                    rect.x        += valueFieldMarginLeft;
                    element.Value1 = EditorGUI.FloatField(rect, element.Value1);
                    changeValue1   = EditorGUI.EndChangeCheck();

                    rect.x += rect.width + valueFieldSpace;

                    EditorGUI.BeginChangeCheck();
                    element.Value2 = EditorGUI.FloatField(rect, element.Value2);
                    changeValue2   = EditorGUI.EndChangeCheck();
                    break;

                case 2:     // 数値3:数値4
                    rect.width -= valueFieldSpace + valueFieldMarginLeft + valueFieldMarginRight;
                    rect.width /= 2f;
                    rect.x     += valueFieldMarginLeft;

                    EditorGUI.BeginChangeCheck();
                    element.Value3 = EditorGUI.FloatField(rect, element.Value3);
                    changeValue3   = EditorGUI.EndChangeCheck();

                    rect.x += rect.width + valueFieldSpace;

                    EditorGUI.BeginChangeCheck();
                    element.Value4 = EditorGUI.FloatField(rect, element.Value4);
                    changeValue4   = EditorGUI.EndChangeCheck();
                    break;

                case 3:     // ボタン表示
                    rect.width /= 2;
                    if (GUI.Button(rect, "+"))
                    {
                        // 要素を複製して追加
                        baseElements.Insert(element.Id, new TreeElement
                        {
                            Name          = element.Name,
                            TemplateIndex = element.TemplateIndex,
                            Value1        = element.Value1,
                            Value2        = element.Value2,
                            Value3        = element.Value3,
                            Value4        = element.Value4,
                        });
                        Update();
                        Reload();
                    }
                    ;
                    rect.x += rect.width;

                    EditorGUI.BeginDisabledGroup(this.baseElements.Count <= 1);
                    if (GUI.Button(rect, "-"))
                    {
                        baseElements.RemoveAt(element.Id);
                        Update();
                        Reload();
                    }
                    ;
                    EditorGUI.EndDisabledGroup();
                    break;
                }

                if (changeValue1)
                {
                    element.UpdateValue4();
                }
                if (changeValue2)
                {
                    element.UpdateValue3();
                }
                if (changeValue3)
                {
                    element.UpdateValue4();
                }
                if (changeValue4)
                {
                    element.UpdateValue3();
                }
            }
        }
        protected override void RowGUI(RowGUIArgs args)
        {
            var item = (LuaProfilerTreeViewItem)args.item;

            if (m_gs == null)
            {
                m_gs           = new GUIStyle(GUI.skin.label);
                m_gs.alignment = TextAnchor.MiddleCenter;
            }
            var color = m_gs.normal.textColor;

            if (!this.IsSelected(item.id))
            {
                if (item.isLua)
                {
                    m_gs.normal.textColor = m_luaColor;
                }
                else if (item.isError)
                {
                    m_gs.normal.textColor = m_errorColor;
                }
                else
                {
                    m_gs.normal.textColor = m_monoColor;
                }
            }
            else
            {
                m_gs.normal.textColor = m_selectColor;
            }

            Rect r = args.GetCellRect(0);

            args.rowRect = r;
            base.RowGUI(args);

            r = args.GetCellRect(1);
            GUI.Label(r, GetMemoryString(item.totalLuaMemory), m_gs);

            r = args.GetCellRect(2);
            GUI.Label(r, GetMemoryString(item.selfLuaMemory), m_gs);

            r = args.GetCellRect(3);
            GUI.Label(r, GetMemoryString(item.totalMonoMemory), m_gs);

            r = args.GetCellRect(4);
            GUI.Label(r, GetMemoryString(item.selfMonoMemory), m_gs);

            r = args.GetCellRect(5);
            GUI.Label(r, GetMemoryString(item.showLuaGC), m_gs);

            r = args.GetCellRect(6);
            GUI.Label(r, GetMemoryString(item.showMonoGC), m_gs);

            r = args.GetCellRect(7);
            GUI.Label(r, ((float)item.currentTime / 10000).ToString("f2") + "ms", m_gs);

            r = args.GetCellRect(8);
            GUI.Label(r, ((float)item.selfCostTime / 10000).ToString("f2") + "ms", m_gs);

            r = args.GetCellRect(9);
            GUI.Label(r, ((float)item.averageTime / 10000).ToString("f2") + "ms", m_gs);

            r = args.GetCellRect(10);
            GUI.Label(r, ((float)item.totalTime / 10000000).ToString("f6") + "s", m_gs);

            r = args.GetCellRect(11);
            GUI.Label(r, GetMemoryString(item.totalCallTime, ""), m_gs);

            r = args.GetCellRect(12);
            GUI.Label(r, item.frameCalls.ToString(), m_gs);

            m_gs.normal.textColor = color;
        }
示例#5
0
        protected void DrawToggle(Rect rect, TreeViewItem <TreeElementType> item, ref bool toggle, ref RowGUIArgs args)
        {
            Rect toggleRect = rect;

            toggleRect.x     = GetContentIndent(item);
            toggleRect.width = toggleWidth;

            // Hide when outside cell rect
            if (toggleRect.xMax < rect.xMax)
            {
                toggle = EditorGUI.Toggle(toggleRect, toggle);
            }

            args.rowRect = rect;
            base.RowGUI(args);
        }
        private void CellGUI(Rect cellRect, TreeViewItem item, ColumnType columnType, ref RowGUIArgs args)
        {
            CenterRectUsingSingleLineHeight(ref cellRect);

            if (columnType != ColumnType.Name)
            {
                return;
            }

            args.rowRect = cellRect;
            base.RowGUI(args);
        }
示例#7
0
        void CellGUI(Rect cellRect, TreeViewItem <MyTreeElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Name:
            {
                // Do toggle
                Rect toggleRect = cellRect;
                toggleRect.x    += GetContentIndent(item);
                toggleRect.width = kToggleWidth;
                if (toggleRect.xMax < cellRect.xMax)
                {
//							item.data.enabled = EditorGUI.Toggle(toggleRect, item.data.enabled); // hide when outside cell rect

                    // Default icon and label
                    args.rowRect = cellRect;
                }
                base.RowGUI(args);
            }
            break;

            case MyColumns.Value1:
            case MyColumns.Value2:
            {
                if (showControls)
                {
                    cellRect.xMin += 5f;                                     // When showing controls make some extra spacing

                    if (column == MyColumns.Value2)
                    {
                        item.data.eObject = (UnityEngine.Object)EditorGUI.ObjectField(cellRect, GUIContent.none, item.data.eObject, typeof(UnityEngine.Object), true);
                    }
                    if (column == MyColumns.Value1)
                    {
                        GUI.Label(cellRect, item.data.path);
                    }
                }
            }
            break;
            }
        }
示例#8
0
        void CellGUI(Rect cellRect, TreeViewItem <CustomPackageManagerScopedRegistry> item, PackageColumn column, ref RowGUIArgs args)
        {
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case PackageColumn.RegistryName:
            {
                GUI.Label(cellRect, item.data.RegistryName);
            }
            break;

            case PackageColumn.URL:
            {
                GUI.Label(cellRect, item.data.URL);
            }
            break;

            case PackageColumn.Scopes:
            {
                GUI.Label(cellRect, item.data.Scopes);
            }
            break;
            }
        }
        protected override void RowGUI(RowGUIArgs args)
        {
            TreeNode node = treeQuery[args.item.id];

            RowState state;

            if (node.IsNull)
            {
                state = RowState.Error;
            }
            else if (node.IsPseudo)
            {
                state = RowState.Pseudo;
            }
            else
            {
                state = RowState.Normal;
            }

            GUIStyle style   = GetStateGUIStyle(state, args.item);
            bool     hasIcon = node.icon != null;

            if (OnionDataEditor.Setting.isRowGUIActive)
            {
                DrawNodeRowGUI();
            }

            DrawIcon();

            DrawTitle();

            DrawRightSideInfo();

            DrawTagColor();

            //Line
            Rect lineRect = args.rowRect
                            .ExtendLeft(-GetContentIndent(args.item))
                            .ExtendUpToFit(1);

            EditorGUI.DrawRect(lineRect, new Color(0.5f, 0.5f, 0.5f, 0.05F));      //線


            void DrawNodeRowGUI()
            {
                const float leftSpace  = 200F;
                const float rightSpace = 40F;

                if (Event.current.type == EventType.Repaint &&
                    args.rowRect.width < leftSpace + rightSpace)
                {
                    return;
                }

                Rect rect = args.rowRect
                            .ExtendLeft(-leftSpace)
                            .ExtendRight(-rightSpace);

                //EditorGUI.DrawRect(rect, new Color(1, 1, 1, 0.3F)); //For Debug

                node.OnRowGUI?.Invoke(rect);
            }

            void DrawIcon()
            {
                const float padding = 1F;

                if (hasIcon)
                {
                    float iconHeight = args.rowRect.height - padding * 2;

                    Rect iconRect = new Rect(args.rowRect)
                                    .ExtendLeft(-GetContentIndent(args.item))
                                    .SetSize(iconHeight, iconHeight);


                    GUI.Label(iconRect, node.icon);
                }
            }

            void DrawTitle()
            {
                Rect labelRect = new Rect(args.rowRect)
                                 .ExtendLeft(-GetContentIndent(args.item))
                                 .ExtendLeft(-(hasIcon ? (args.rowRect.height + 4F) : 2F));

                GUI.Label(labelRect, node.displayName, style);
            }

            void DrawRightSideInfo()
            {
                bool isHideElementNodes = node.Flag.HasFlag(TreeNode.NodeFlag.HideElementNodes);

                if (treeQuery[args.item.id].ChildCount > 0 || isHideElementNodes)
                {
                    const float tagWidth  = 40F;
                    Rect        rightRect = new Rect(args.rowRect)
                                            .ExtendLeft(-args.rowRect.width)
                                            .ExtendLeft(tagWidth);

                    GUIStyle labelStyle = new GUIStyle(GUI.skin.label)
                    {
                        normal =
                        {
                            textColor = new Color(0.5F, 0.5F, 0.5F, 0.5F),
                        },
                        alignment = TextAnchor.MiddleCenter,
                        fontSize  = 10,
                        padding   = new RectOffset(0, 0, 0, 0),
                        border    = new RectOffset(16, 16, 16, 16),
                    };

                    if (isHideElementNodes)
                    {
                        var icon = OnionDataEditor.GetIconTexture("HideElement");
                        GUI.color = new Color(1, 1, 1, 0.5F);
                        GUI.Label(
                            rightRect.ExtendLeft(-rightRect.width + rightRect.height).MoveLeft(8),
                            new GUIContent(icon, "Hide Elements"));
                        GUI.color = Color.white;
                    }
                    else
                    {
                        string displayTag = treeQuery[args.item.id].ChildCount.ToString();
                        GUI.Label(rightRect.ExtendHorizontal(-5).ExtendVertical(-2), $"[ {displayTag} ]", labelStyle);
                    }
                }
            }

            void DrawTagColor()
            {
                if (node.tagColor.a > 0F)
                {
                    const float colorTagWidth = 3F;
                    Rect        colorTagRect  = new Rect(args.rowRect)
                                                .ExtendLeft(-args.rowRect.width)
                                                .ExtendLeft(colorTagWidth)
                                                .ExtendDown(-1);

                    EditorGUI.DrawRect(colorTagRect, node.tagColor);
                }
            }
        }
        private void CellGUI(Rect cellRect, UTinyEntityGroupTreeViewItem item, ColumnType columnType, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            var entityGroup = item.EntityGroup.Dereference(Model.Registry);

            using (new GUIEnabledScope(item.Editable))
            {
                switch (columnType)
                {
                case ColumnType.Icon:
                {
                    GUI.DrawTexture(cellRect, null == entityGroup ? UTinyIcons.Warning : UTinyIcons.EntityGroup,
                                    ScaleMode.ScaleToFit);
                }
                break;

                case ColumnType.Name:
                {
                    args.rowRect = cellRect;

                    using (new GUIColorScope(null == entityGroup ? Color.red : Color.white))
                    {
                        base.RowGUI(args);
                    }
                }
                break;

                case ColumnType.Startup:
                {
                    var mainModule = Model.MainModule.Dereference(Model.Registry);
                    if (entityGroup != null && mainModule.StartupEntityGroup.Equals(item.EntityGroup))
                    {
                        GUI.Label(cellRect, "X");
                    }
                }
                break;

                case ColumnType.Module:
                {
                    GUI.Label(cellRect, item.Module.Name);
                }
                break;
                }
            }
        }
示例#11
0
        void CellGUI(Rect cellRect, TreeViewItem <PrefabsListElement> item, Columns column, ref RowGUIArgs args)
        {
            CenterRectUsingSingleLineHeight(ref cellRect);

            Rect textRect = cellRect;

            textRect.x   += GetContentIndent(item);
            textRect.xMax = cellRect.xMax - textRect.x;
            switch (column)
            {
            case Columns.Name:
                GUI.Label(textRect, item.data.prefabName);
                break;

            case Columns.ID:
                if (item.data.rustID != 0)
                {
                    GUI.Label(cellRect, item.data.rustID.ToString());
                }
                break;
            }
        }
示例#12
0
        void CellGUI(Rect cellRect, TreeViewItem <PrefabHierarchyElement> item, Columns column, ref RowGUIArgs args)
        {
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case Columns.Name:
                Rect textRect = cellRect;
                textRect.x   += GetContentIndent(item);
                textRect.xMax = cellRect.xMax - textRect.x;
                GUI.Label(cellRect, item.data.prefabName);
                break;

            case Columns.Type:
                GUI.Label(cellRect, item.data.type);
                break;

            case Columns.Category:
                GUI.Label(cellRect, item.data.category);
                break;

            case Columns.RustID:
                GUI.Label(cellRect, item.data.rustID.ToString());
                break;
            }
        }
示例#13
0
        private void CellGUI(Rect cellRect, BundleBuilderTreeViewItem item, int column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case 0:
                if (item.depth == 0)
                {
                    var bundleInfo = (item as BundleBuilderTreeViewBundle).bundleInfo;
                    if (bundleInfo.type == Manifest.BundleType.AssetBundle)
                    {
                        GUI.DrawTexture(cellRect, kIconFavorite, ScaleMode.ScaleToFit);
                    }
                    else
                    {
                        GUI.DrawTexture(cellRect, kIconZipArchive, ScaleMode.ScaleToFit);
                    }
                }
                break;

            case 1:
                // Do toggle
                var toggleRect = cellRect;
                var indent     = GetContentIndent(item);
                toggleRect.x    += indent;
                toggleRect.width = kToggleWidth;
                if (toggleRect.xMax < cellRect.xMax)
                {
                    item.enabled = EditorGUI.Toggle(toggleRect, item.enabled);     // hide when outside cell rect
                }
                // Default icon and label
                args.rowRect   = cellRect;
                cellRect.xMin += indent + kToggleWidth + 2f;
                if (item.depth == 0)
                {
                    var bundleInfo = (item as BundleBuilderTreeViewBundle).bundleInfo;
                    if (string.IsNullOrEmpty(bundleInfo.note))
                    {
                        EditorGUI.LabelField(cellRect, bundleInfo.name);
                    }
                    else
                    {
                        EditorGUI.LabelField(cellRect, string.Format("{0} ({1})", bundleInfo.note, bundleInfo.name));
                    }
                }
                else if (item.depth == 1)
                {
                    var target = (item as BundleBuilderTreeViewTarget).assetTarget;
                    if (target.targetPath.StartsWith("Assets/"))
                    {
                        var assetObject    = AssetDatabase.LoadMainAssetAtPath(target.targetPath);
                        var newAssetObject = EditorGUI.ObjectField(cellRect, GUIContent.none, assetObject, typeof(Object), false);
                        if (newAssetObject != assetObject)
                        {
                            target.targetPath = newAssetObject != null?AssetDatabase.GetAssetPath(newAssetObject) : string.Empty;

                            _data.MarkAsDirty();
                        }
                    }
                    else
                    {
                        var oldColor   = GUI.color;
                        var bundleInfo = (item.parent as BundleBuilderTreeViewBundle).bundleInfo;
                        if (bundleInfo.type == Manifest.BundleType.ZipArchive)
                        {
                            if (Directory.Exists(target.targetPath) || File.Exists(target.targetPath))
                            {
                                GUI.color = Color.yellow;
                                GUI.Label(cellRect, "<External>");
                            }
                            else
                            {
                                GUI.color = Color.red;
                                GUI.Label(cellRect, "<Invalid>");
                            }
                        }
                        else
                        {
                            GUI.color = Color.red;
                            GUI.Label(cellRect, "<Not Supported>");
                        }
                        GUI.color = oldColor;
                    }
                }
                else
                {
                    base.RowGUI(args);
                }
                break;

            case 2:
                if (item.depth == 1)
                {
                    var target        = (item as BundleBuilderTreeViewTarget).assetTarget;
                    var newTargetPath = GUI.TextField(cellRect, target.targetPath);

                    if (newTargetPath != target.targetPath)
                    {
                        target.targetPath = newTargetPath;
                        _data.MarkAsDirty();
                    }
                }
                break;

            case 3:
                if (item.depth == 0)
                {
                    var bundleInfo = (item as BundleBuilderTreeViewBundle).bundleInfo;
                    var popupWidth = (cellRect.width - 20f) * 0.5f;
                    cellRect.width = 20f;
                    var streamingAssets = EditorGUI.Toggle(cellRect, bundleInfo.streamingAssets);
                    if (streamingAssets != bundleInfo.streamingAssets)
                    {
                        bundleInfo.streamingAssets = streamingAssets;
                        _data.MarkAsDirty();
                    }
                    cellRect.x    += cellRect.width;
                    cellRect.width = popupWidth;
                    var load = (Manifest.BundleLoad)EditorGUI.EnumPopup(cellRect, bundleInfo.load);
                    if (load != bundleInfo.load)
                    {
                        bundleInfo.load = load;
                        _data.MarkAsDirty();
                    }
                    cellRect.x    += cellRect.width;
                    cellRect.width = popupWidth;
                    var type = (Manifest.BundleType)EditorGUI.EnumPopup(cellRect, bundleInfo.type);
                    if (type != bundleInfo.type)
                    {
                        bundleInfo.type = type;
                        _data.MarkAsDirty();
                        Reload();
                    }
                }
                else if (item.depth == 1)
                {
                }
                break;

            case 4:
                if (item.depth == 0)
                {
                    var bundleInfo = (item as BundleBuilderTreeViewBundle).bundleInfo;
                    var priority   = EditorGUI.IntSlider(cellRect, bundleInfo.priority, 0, _data.priorityMax);
                    if (priority != bundleInfo.priority)
                    {
                        bundleInfo.priority = priority;
                        _data.MarkAsDirty();
                    }
                }
                else if (item.depth == 1)
                {
                }
                break;

            case 5:
                if (item.depth == 0)
                {
                    var bundleInfo = (item as BundleBuilderTreeViewBundle).bundleInfo;
                    var buildOrder = EditorGUI.IntField(cellRect, bundleInfo.buildOrder);
                    if (buildOrder != bundleInfo.buildOrder)
                    {
                        bundleInfo.buildOrder = buildOrder;
                        _data.MarkAsDirty();
                    }
                }
                break;
            }
        }
示例#14
0
        void CellGUI(Rect cellRect, TreeViewItem <MyTreeElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Icon1:
            {
                GUI.DrawTexture(cellRect, s_TestIcons[GetIcon1Index(item)], ScaleMode.ScaleToFit);
            }
            break;

            case MyColumns.Icon2:
            {
                GUI.DrawTexture(cellRect, s_TestIcons[GetIcon2Index(item)], ScaleMode.ScaleToFit);
            }
            break;

            case MyColumns.Name:
            {
                // Do toggle
                Rect toggleRect = cellRect;
                toggleRect.x    += GetContentIndent(item);
                toggleRect.width = kToggleWidth;
                if (toggleRect.xMax < cellRect.xMax)
                {
                    item.data.enabled = EditorGUI.Toggle(toggleRect, item.data.enabled);                                     // hide when outside cell rect
                }
                // Default icon and label
                args.rowRect = cellRect;
                base.RowGUI(args);
            }
            break;

            case MyColumns.Value1:
            case MyColumns.Value2:
            case MyColumns.Value3:
            {
                if (showControls)
                {
                    cellRect.xMin += 5f;                                     // When showing controls make some extra spacing

                    if (column == MyColumns.Value1)
                    {
                        item.data.floatValue1 = EditorGUI.Slider(cellRect, GUIContent.none, item.data.floatValue1, 0f, 1f);
                    }
                    if (column == MyColumns.Value2)
                    {
                        item.data.material = (Material)EditorGUI.ObjectField(cellRect, GUIContent.none, item.data.material, typeof(Material), false);
                    }
                    if (column == MyColumns.Value3)
                    {
                        item.data.text = GUI.TextField(cellRect, item.data.text);
                    }
                }
                else
                {
                    string value = "Missing";
                    if (column == MyColumns.Value1)
                    {
                        value = item.data.floatValue1.ToString("f5");
                    }
                    if (column == MyColumns.Value2)
                    {
                        value = item.data.floatValue2.ToString("f5");
                    }
                    if (column == MyColumns.Value3)
                    {
                        value = item.data.floatValue3.ToString("f5");
                    }

                    DefaultGUI.LabelRightAligned(cellRect, value, args.selected, args.focused);
                }
            }
            break;

            case MyColumns.Button:
                if (GUI.Button(cellRect, "Open"))
                {
                    OpenProperties(item);
                }
                break;
            }
        }
        void CellGUI(Rect cellRect, TreeViewItem <FeatureTreeElement> item, FeatureSubLayerColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            if (Layers == null || Layers.arraySize == 0)
            {
                return;
            }

            if (Layers.arraySize <= args.item.id - uniqueId)
            {
                return;
            }

            var layer = Layers.GetArrayElementAtIndex(args.item.id - uniqueId);

            CenterRectUsingSingleLineHeight(ref cellRect);
            if (column == FeatureSubLayerColumns.Name)
            {
                Rect toggleRect = cellRect;
                toggleRect.x    += GetContentIndent(item);
                toggleRect.width = kToggleWidth;

                EditorGUI.BeginChangeCheck();
                item.data.isActive = layer.FindPropertyRelative("coreOptions.isActive").boolValue;
                if (toggleRect.xMax < cellRect.xMax)
                {
                    item.data.isActive = EditorGUI.Toggle(toggleRect, item.data.isActive);                     // hide when outside cell rect
                }
                layer.FindPropertyRelative("coreOptions.isActive").boolValue = item.data.isActive;
                if (EditorGUI.EndChangeCheck())
                {
                    VectorSubLayerProperties vectorSubLayerProperties = (VectorSubLayerProperties)EditorHelper.GetTargetObjectOfProperty(layer);
                    EditorHelper.CheckForModifiedProperty(layer, vectorSubLayerProperties.coreOptions);
                }

                cellRect.xMin += nameOffset;                 // Adding some gap between the checkbox and the name
                args.rowRect   = cellRect;

                layer.FindPropertyRelative("coreOptions.sublayerName").stringValue = item.data.Name;
                //This draws the name property
                base.RowGUI(args);
            }
            if (column == FeatureSubLayerColumns.Type)
            {
                cellRect.xMin += 15f;                 // Adding some gap between the checkbox and the name

                var typeString = ((PresetFeatureType)layer.FindPropertyRelative("presetFeatureType").intValue).ToString();
                item.data.Type = typeString;
                EditorGUI.LabelField(cellRect, item.data.Type, columnStyle);
            }
        }
示例#16
0
        protected override void RowGUI(RowGUIArgs args)
        {
            GameObject go = GetGameObjectFromInstanceID(args.item.id);

            if (!go)
            {
                base.RowGUI(args);
                return;
            }

            bool     goActive = go.activeInHierarchy;
            GUIStyle style;

            if (goActive)
            {
#if UNITY_2018_3_OR_NEWER
                switch (PrefabUtility.GetPrefabInstanceStatus(go))
                {
                case PrefabInstanceStatus.MissingAsset: style = GameObjectStyles.brokenPrefabLabel; break;

                case PrefabInstanceStatus.Connected: style = GameObjectStyles.prefabLabel; break;

                default: style = DefaultStyles.foldoutLabel; break;
                }
#else
                switch (PrefabUtility.GetPrefabType(go))
                {
                case PrefabType.MissingPrefabInstance: style = GameObjectStyles.brokenPrefabLabel; break;

                case PrefabType.ModelPrefabInstance:
                case PrefabType.PrefabInstance: style = GameObjectStyles.prefabLabel; break;

                default: style = DefaultStyles.foldoutLabel; break;
                }
#endif
            }
            else
            {
#if UNITY_2018_3_OR_NEWER
                switch (PrefabUtility.GetPrefabInstanceStatus(go))
                {
                case PrefabInstanceStatus.MissingAsset: style = GameObjectStyles.disabledBrokenPrefabLabel; break;

                case PrefabInstanceStatus.Connected: style = GameObjectStyles.disabledPrefabLabel; break;

                default: style = GameObjectStyles.disabledLabel; break;
                }
#else
                switch (PrefabUtility.GetPrefabType(go))
                {
                case PrefabType.MissingPrefabInstance: style = GameObjectStyles.disabledBrokenPrefabLabel; break;

                case PrefabType.ModelPrefabInstance:
                case PrefabType.PrefabInstance: style = GameObjectStyles.disabledPrefabLabel; break;

                default: style = GameObjectStyles.disabledLabel; break;
                }
#endif
            }

            Rect rect = args.rowRect;
            rect.x += GetContentIndent(args.item);

#if UNITY_2018_3_OR_NEWER
            Texture2D icon = args.item.icon;
            if (icon)
            {
                Color iconTint = goActive ? Color.white : new Color(1f, 1f, 1f, 0.5f);
                Rect  iconRect = rect;
                iconRect.width = 16f;

#if UNITY_2019_3_OR_NEWER
                if (args.selected && args.focused && selectedIconGetter != null)
                {
                    icon = selectedIconGetter.Invoke(null, new object[] { icon }) as Texture2D;
                    if (!icon)
                    {
                        icon = args.item.icon;
                    }
                }
#endif

                GUI.DrawTexture(iconRect, icon, ScaleMode.ScaleToFit, true, 0f, iconTint, 0f, 0f);

                if (PrefabUtility.IsAddedGameObjectOverride(go))
                {
                    GUI.DrawTexture(iconRect, EditorGUIUtility.Load("PrefabOverlayAdded Icon") as Texture, ScaleMode.ScaleToFit, true, 0f, iconTint, 0f, 0f);
                }

                rect.x += iconRect.width + 2f;
            }
#endif

            if (Event.current.type == EventType.Repaint)
            {
                style.Draw(rect, args.label, false, false, args.selected, args.focused);
            }
        }
        private void CellGUI(Rect cellRect, UTinyModuleTreeViewItem item, ColumnType columnType, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            using (new GUIEnabledScope(item.Status != UTinyModuleTreeViewItem.StatusType.Self &&
                                       (item.Status != UTinyModuleTreeViewItem.StatusType.IncludedRequired)))
            {
                var moduleReference = item.Module;
                var module          = item.Module.Dereference(Model.Registry);

                switch (columnType)
                {
                case ColumnType.Icon:
                {
                    GUI.DrawTexture(cellRect, null == module ? UTinyIcons.Warning : UTinyIcons.Module,
                                    ScaleMode.ScaleToFit);
                }
                break;

                case ColumnType.Name:
                {
                    var toggleRect = cellRect;
                    toggleRect.x    += GetContentIndent(item);
                    toggleRect.width = 18;

                    EditorGUI.BeginChangeCheck();

                    item.Included = EditorGUI.Toggle(toggleRect, item.Included);

                    if (EditorGUI.EndChangeCheck())
                    {
                        ShowConfigurationInspector();
                        Reload();
                    }

                    args.rowRect = cellRect;

                    using (new GUIColorScope(null == module ? Color.red : Color.white))
                    {
                        base.RowGUI(args);
                    }
                }
                break;

                case ColumnType.Status:
                {
                    string status;

                    switch (item.Status)
                    {
                    case UTinyModuleTreeViewItem.StatusType.Self:
                        status = "";
                        break;

                    case UTinyModuleTreeViewItem.StatusType.Excluded:
                        status = "Excluded";
                        break;

                    case UTinyModuleTreeViewItem.StatusType.IncludedRequired:
                        status = "Included (Required)";
                        break;

                    case UTinyModuleTreeViewItem.StatusType.IncludedExplicit:
                        status = "Included (Explicit)";
                        break;

                    case UTinyModuleTreeViewItem.StatusType.IncludedImplicit:
                        status = "Included (Implicit)";
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }

                    using (new GUIColorScope(item.Status != UTinyModuleTreeViewItem.StatusType.Excluded
                            ? item.Status != UTinyModuleTreeViewItem.StatusType.IncludedImplicit ?
                                             Color.green
                            : Color.cyan
                            : Color.white))
                    {
                        GUI.Label(cellRect, status);
                    }
                }
                break;

                case ColumnType.Dependencies:
                {
                    var @string = "";

                    if (module != null)
                    {
                        for (var i = 0; i < module.Dependencies.Count; i++)
                        {
                            var @ref = module.Dependencies[i];
                            var m    = @ref.Dereference(Model.Registry);

                            if (i > 0)
                            {
                                @string += ", ";
                            }

                            if (null == m)
                            {
                                @string += $"{@ref.Name} (missing)";
                            }
                            else
                            {
                                @string += m.Name;
                            }
                        }
                    }

                    GUI.Label(cellRect, @string);
                }
                break;

                case ColumnType.ReferencedBy:
                {
                    var modules = UTinyModule.GetExplicitDependantModules(Model.Registry, moduleReference).Where(m => !m.IsProjectModule);
                    var @string = string.Join(", ", modules.Select(m => m.Name).ToArray());
                    GUI.Label(cellRect, @string);
                }
                break;

                case ColumnType.Description:
                {
                    if (module != null)
                    {
                        EditorGUI.LabelField(cellRect, module.Documentation.Summary);
                    }
                }
                break;
                }
            }
        }
示例#18
0
 // Custom GUI
 protected virtual void RowGUI(RowGUIArgs args)
 {
     m_GUI.DefaultRowGUI(args);
 }
        private string GetItemcontent(RowGUIArgs args, int column)
        {
            if (m_AllCanvasesItem != null && args.item.id == m_AllCanvasesItem.id)
            {
                switch ((Column)column)
                {
                case Column.TotalBatchCount:
                    return(m_AllCanvasesItem.totalBatchCount.ToString());

                case Column.TotalVertexCount:
                    return(m_AllCanvasesItem.totalVertexCount.ToString());

                case Column.GameObjectCount:
                    return(m_AllCanvasesItem.gameObjectCount.ToString());

                default:
                    return(null);
                }
            }

            var batchItem = args.item as BatchTreeViewItem;

            if (batchItem != null)
            {
                var info = batchItem.info;
                switch ((Column)column)
                {
                case Column.VertexCount:
                    return(info.vertexCount.ToString());

                case Column.TotalVertexCount:
                    return(info.totalVertexCount.ToString());

                case Column.BatchBreakingReason:
                    if (info.batchBreakingReason != BatchBreakingReason.NoBreaking)
                    {
                        return(FormatBatchBreakingReason(info));
                    }
                    break;

                case Column.GameObjectCount:
                    return(info.instanceIDsCount.ToString());

                case Column.InstanceIds:
                    if (batchItem.instanceIDs.Length <= 5)
                    {
                        StringBuilder sb = new StringBuilder();
                        for (int i = 0; i < batchItem.instanceIDs.Length; i++)
                        {
                            if (i != 0)
                            {
                                sb.Append(", ");
                            }
                            int iid = batchItem.instanceIDs[i];
                            var o   = EditorUtility.InstanceIDToObject(iid);
                            if (o == null)
                            {
                                sb.Append(iid);
                            }
                            else
                            {
                                sb.Append(o.name);
                            }
                        }
                        return(sb.ToString());
                    }
                    return(string.Format("{0} objects", batchItem.instanceIDs.Length));

                case Column.Element:
                case Column.BatchCount:
                case Column.TotalBatchCount:
                    break;

                case Column.Rerender:
                    return(info.renderDataIndex.ToString());

                default:
                    return("Missing");
                }
                return(null);
            }

            var canvasItem = args.item as CanvasTreeViewItem;

            if (canvasItem != null)
            {
                UISystemProfilerInfo info = canvasItem.info;
                switch ((Column)column)
                {
                case Column.BatchCount:
                    return(info.batchCount.ToString());

                case Column.TotalBatchCount:
                    return(info.totalBatchCount.ToString());

                case Column.TotalVertexCount:
                    return(info.totalVertexCount.ToString());

                case Column.GameObjectCount:
                    return(info.instanceIDsCount.ToString());

                case Column.VertexCount:
                case Column.BatchBreakingReason:
                case Column.InstanceIds:
                case Column.Element:
                    break;

                case Column.Rerender:
                    return(info.renderDataIndex + " : " + info.renderDataCount);

                default:
                    return("Missing");
                }
                return(null);
            }
            return(null);
        }
        void CellGUI(Rect cellRect, TreeViewItem <SaveEditorTreeElement> item, MyColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case MyColumns.Name:
            {
                // Default icon and label
                args.rowRect = cellRect;

                if (item.data.setName != null && showControls)
                {
                    var offset    = 25 * item.depth;
                    var fieldRect = new Rect(offset, cellRect.y, cellRect.width - offset, cellRect.height);
                    try{
                        DrawGuiForValues(
                            fieldRect,
                            item.data.nameValue.GetType(),
                            ref item.data.nameValue,
                            ref item.data.originalNameValue,
                            ref item.data.m_Name,
                            ref item.data.isValidNameValue,
                            item.data.setName,
                            item.data
                            );
                    }catch (Exception e) {
                        Debug.LogError(e);
                    }
                }
                else
                {
                    base.RowGUI(args);
                }
            }
            break;

            case MyColumns.Value:
            {
                if (!showControls)
                {
                    string value = "";
                    if (item.data.valueType.IsGenericType)
                    {
                        value = GetCSharpRepresentation(item.data.valueType, true);
                    }
                    else
                    {
                        value = item.data.value.ToString();
                    }

                    GUI.Label(cellRect, value);
                }
                else
                {
                    cellRect.xMin += 5f; // When showing controls make some extra spacing
                    if (item.data == null)
                    {
                        Debug.LogWarning("Item with null data: " + item.displayName);
                        return;
                    }


                    DrawGuiForValues(
                        cellRect,
                        item.data.valueType,
                        ref item.data.value,
                        ref item.data.originalValue,
                        ref item.data.editorStrValue,
                        ref item.data.isValidValue,
                        item.data.setValue,
                        item.data
                        );
                }
            }
            break;

            case MyColumns.Controls:
            {
                var buttonStyle = new GUIStyle("miniButton");
                buttonStyle.fixedWidth = 20f;
                const float buttonMargin = 5f;
                int         numButtons   = 0;

                Rect NextButton()
                {
                    var mv  = buttonStyle.fixedWidth + buttonMargin;
                    var ret = new Rect(cellRect.x + (mv * numButtons), cellRect.y, buttonStyle.fixedWidth, cellRect.height);

                    numButtons++;
                    return(ret);
                }

                if (GUI.Button(NextButton(), new GUIContent("x", "Set to default"), buttonStyle))
                {
                    RemoveItemsChildrenFromTree(item);
                    var def = GetDefault(item.data.valueType);
                    item.data.setValue(item.data.value, def, item.data);
                    item.data.value          = def;
                    item.data.editorStrValue = item.data.value == null ? "null" : item.data.value.ToString();
                }

                //remove from array/list
                // var parentType = item.data.parent != null ? ((SaveEditorTreeElement)item.data.parent).valueType : null;
                if (item.data.removeValueFromParent != null)
                {
                    if (GUI.Button(NextButton(), new GUIContent("-", "Remove from collection"), buttonStyle))
                    {
                        item.data.removeValueFromParent(item.data);
                        RemoveItemsChildrenFromTree(item);
                        RemoveItemFromTree(item);
                        if (item.data.needsSiblingRename)
                        {
                            RenameChildren(item.parent as TreeViewItem <SaveEditorTreeElement>);
                        }
                        Reload();
                    }
                }
                //Add new element to collection
                if (item.data.addToCollection != null)
                {
                    if (GUI.Button(NextButton(), new GUIContent("+", "Add item to collection"), buttonStyle))
                    {
                        AddItemToCollection(item);
                    }
                }
            }
            break;
            }
        }
示例#21
0
        void CellGUI(Rect cellRect, AssetEntryTreeViewItem item, int column, ref RowGUIArgs args)
        {
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch ((ColumnId)column)
            {
            case ColumnId.Id:
            {
                // The rect is assumed indented and sized after the content when pinging
                float indent = GetContentIndent(item) + extraSpaceBeforeIconAndLabel;
                cellRect.xMin += indent;

                if (Event.current.type == EventType.Repaint)
                {
                    m_LabelStyle.Draw(cellRect, item.entry.address, false, false, args.selected, args.focused);
                }
            }
            break;

            case ColumnId.Path:
                if (Event.current.type == EventType.Repaint)
                {
                    var path = item.entry.AssetPath;
                    if (string.IsNullOrEmpty(path))
                    {
                        path = "Missing File";
                    }
                    m_LabelStyle.Draw(cellRect, path, false, false, args.selected, args.focused);
                }
                break;

            case ColumnId.Type:
                if (item.assetIcon != null)
                {
                    UnityEngine.GUI.DrawTexture(cellRect, item.assetIcon, ScaleMode.ScaleToFit, true);
                }
                break;

            case ColumnId.Labels:
                if (EditorGUI.DropdownButton(cellRect, new GUIContent(m_Editor.settings.labelTable.GetString(item.entry.labels, cellRect.width)), FocusType.Passive))
                {
                    var selection = GetItemsForContext(args.item.id);
                    Dictionary <string, int>     labelCounts = new Dictionary <string, int>();
                    List <AddressableAssetEntry> entries     = new List <AddressableAssetEntry>();
                    var newSelection = new List <int>();
                    foreach (var s in selection)
                    {
                        var aeItem = FindItem(s, rootItem) as AssetEntryTreeViewItem;
                        if (aeItem == null || aeItem.entry == null)
                        {
                            continue;
                        }

                        entries.Add(aeItem.entry);
                        newSelection.Add(s);
                        foreach (var label in aeItem.entry.labels)
                        {
                            int count;
                            labelCounts.TryGetValue(label, out count);
                            count++;
                            labelCounts[label] = count;
                        }
                    }
                    SetSelection(newSelection);
                    PopupWindow.Show(cellRect, new LabelMaskPopupContent(m_Editor.settings, entries, labelCounts));
                }
                break;
            }
        }
 private void DrawNameCell(Rect cellRect, TreeViewItem item, ref RowGUIArgs args)
 {
     CenterRectUsingSingleLineHeight(ref cellRect);
     args.rowRect = cellRect;
     base.RowGUI(args);
 }
        private void CellGUI(Rect cellRect, AssetProcessEventListTreeItem item, int column, ref RowGUIArgs args)
        {
            Color oldColor = GUI.color;

            CenterRectUsingSingleLineHeight(ref cellRect);
            var assetGuid        = item.Event.AssetGuid;
            var assetPath        = AssetDatabase.GUIDToAssetPath(assetGuid);
            var isAssetAvailable = string.IsNullOrEmpty(assetPath);

            var graphGuid = item.Event.GraphGuid;
            var graphPath = AssetDatabase.GUIDToAssetPath(graphGuid);
            var hasGraph  = !string.IsNullOrEmpty(graphPath);

            var isError = item.Event.Kind == AssetProcessEvent.EventKind.Error;

            switch (column)
            {
            case 0://Error?
            {
                var iconRect = new Rect(cellRect.x, cellRect.y - 6, 32, 32);
                GUI.DrawTexture(iconRect, ((isError)? m_errorIcon:m_infoIcon));
            }
            break;

            case 1://Asset
            {
                Texture2D icon = null;
                if (!isAssetAvailable)
                {
                    icon = AssetDatabase.GetCachedIcon(assetPath) as Texture2D;
                }
                var iconRect = new Rect(cellRect.x + 1, cellRect.y + 1, cellRect.height - 2, cellRect.height - 2);
                if (icon != null)
                {
                    GUI.DrawTexture(iconRect, icon, ScaleMode.ScaleToFit);
                }
                DefaultGUI.Label(
                    new Rect(cellRect.x + iconRect.width + 4, cellRect.y, cellRect.width - iconRect.width, cellRect.height),
                    (!isAssetAvailable)? Path.GetFileName(assetPath) : $"{item.Event.AssetName} (Removed)",
                    args.selected,
                    args.focused);
            }
            break;

            case 2://Graph
                if (hasGraph)
                {
                    DefaultGUI.Label(cellRect, $"{Path.GetFileNameWithoutExtension(graphPath)}.{item.Event.NodeName}", args.selected, args.focused);
                }
                break;
            }
            GUI.color = oldColor;
        }
示例#24
0
        protected override void DrawCell(ref Rect cellRect, MaintainerTreeViewItem <T> genericItem, int columnValue, RowGUIArgs args)
        {
            base.DrawCell(ref cellRect, genericItem, columnValue, args);

            var column = (Columns)columnValue;
            var item   = (HierarchyReferencesTreeViewItem <T>)genericItem;

            switch (column)
            {
            case Columns.Icon:

                if (item.depth == 0)
                {
                    if (item.icon != null)
                    {
                        var iconRect = cellRect;
                        iconRect.width  = IconWidth;
                        iconRect.height = EditorGUIUtility.singleLineHeight;

                        GUI.DrawTexture(iconRect, item.icon, ScaleMode.ScaleToFit);
                    }
                }

                break;

            case Columns.GameObject:

                var entryRect = cellRect;
                entryRect.xMin += baseIndent + UIHelpers.EyeButtonPadding;

                if (item.depth == 1)
                {
                    if (item.icon != null)
                    {
                        var iconRect = entryRect;
                        iconRect.xMin  -= UIHelpers.EyeButtonSize - UIHelpers.EyeButtonPadding;
                        iconRect.width  = IconWidth;
                        iconRect.x     += IconPadding;
                        iconRect.height = EditorGUIUtility.singleLineHeight;

                        GUI.DrawTexture(iconRect, item.icon, ScaleMode.ScaleToFit);
                    }
                }
                else
                {
                    /*entryRect.xMin += baseIndent + UIHelpers.EyeButtonPadding;*/
                }

                Rect lastRect;
                var  eyeButtonRect = entryRect;
                eyeButtonRect.xMin  += IconPadding;
                eyeButtonRect.width  = UIHelpers.EyeButtonSize;
                eyeButtonRect.height = UIHelpers.EyeButtonSize;
                eyeButtonRect.x     += UIHelpers.EyeButtonPadding;

                lastRect = eyeButtonRect;

                if (UIHelpers.IconButton(eyeButtonRect, CSIcons.Show))
                {
                    ShowItem(item);
                }

                var labelRect = entryRect;
                labelRect.xMin = lastRect.xMax + UIHelpers.EyeButtonPadding;

                if (item.data.depth == 0 && !item.data.HasChildren)
                {
                    GUI.contentColor = CSColors.labelDimmedColor;
                }
                DefaultGUI.Label(labelRect, args.label, args.selected, args.focused);

                GUI.contentColor = Color.white;
                break;

            case Columns.Component:

                var componentName = item.data.reference.componentName;
                if (!string.IsNullOrEmpty(componentName))
                {
                    DefaultGUI.Label(cellRect, componentName, args.selected, args.focused);
                }

                break;

            case Columns.Property:

                var propertyPath = item.data.reference.propertyPath;
                if (!string.IsNullOrEmpty(propertyPath))
                {
                    DefaultGUI.Label(cellRect, propertyPath, args.selected, args.focused);
                }

                break;

            case Columns.ReferencesCount:

                if (item.depth == 0)
                {
                    DefaultGUI.Label(cellRect, item.data.ChildrenCount.ToString(), args.selected, args.focused);
                }

                break;

            default:
                throw new ArgumentOutOfRangeException("column", column, null);
            }
        }
示例#25
0
 protected abstract void DrawColumn(Rect cellRect, TreeViewItem <TreeElementType> item, ColumnType column, ref RowGUIArgs args);
示例#26
0
        private void CellGUI(Rect cellRect, UTinyAssetTreeViewItem item, ColumnType columnType, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            var @object  = item.AssetInfo.Object;
            var name     = item.AssetInfo.Name;
            var isUnique = m_AssetNames.Count(s => string.Equals(s, name)) <= 1;

            using (new GUIColorScope(isUnique ? Color.white : Color.red))
                using (new GUIEnabledScope(item.Editable))
                {
                    var content = EditorGUIUtility.ObjectContent(null, @object.GetType());
                    switch (columnType)
                    {
                    case ColumnType.Icon:
                    {
                        if (item.AssetInfo.Parent == null)
                        {
                            GUI.DrawTexture(cellRect, content.image, ScaleMode.ScaleToFit);
                        }
                    }
                    break;

                    case ColumnType.Name:
                    {
                        args.rowRect = cellRect;
                        base.RowGUI(args);
                    }
                    break;

                    case ColumnType.Path:
                    {
                        GUI.Label(cellRect, item.AssetInfo.AssetPath);
                    }
                    break;

                    case ColumnType.Type:
                    {
                        GUI.Label(cellRect, @object.GetType().Name);
                    }
                    break;

                    case ColumnType.Status:
                    {
                        var status = item.AssetInfo.IncludedExplicitly ? "Explicit" : "Implicit";

                        using (new GUIColorScope(item.AssetInfo.IncludedExplicitly ? Color.green : Color.white))
                        {
                            GUI.Label(cellRect, status);
                        }
                    }
                    break;

                    case ColumnType.References:
                    {
                        GUI.Label(cellRect, item.AssetInfo.ImplicitReferences.Count.ToString());
                    }
                    break;
                    }
                }

            if (Event.current.type == EventType.MouseDrag && cellRect.Contains(Event.current.mousePosition))
            {
                DragAndDrop.PrepareStartDrag();
                DragAndDrop.objectReferences = new[] { item.AssetInfo.Object };
                DragAndDrop.StartDrag("Dragging sprite");
                Event.current.Use();
            }
        }
 void DrawNameCell(Rect cellRect, TreeViewItem item, ref RowGUIArgs args)
 {
     args.rowRect = cellRect;
     base.RowGUI(args);
 }
示例#28
0
        void CellGUI(Rect cellRect, FrameDataTreeViewItem item, bool needsIndent, int column, ref RowGUIArgs args)
        {
            if (needsIndent)
            {
                var indent = GetContentIndent(item) + extraSpaceBeforeIconAndLabel;
                cellRect.xMin += indent;
            }
            CenterRectUsingSingleLineHeight(ref cellRect);

            var content = GUIContent.Temp(item.columnStrings[column], string.Empty);

            DefaultStyles.label.Draw(cellRect, content, false, false, args.selected, args.focused);
        }
            protected override void EnabledGUI(Rect cellRect, SerializedNodeInfo node, ref RowGUIArgs args)
            {
                var serializedNode = node;

                EditorGUI.BeginDisabled(serializedNode.m_State == SerializedNodeInfo.State.Disabled);
                base.EnabledGUI(cellRect, node, ref args);
                EditorGUI.EndDisabled();
            }
示例#30
0
 protected virtual void NameGUI(Rect position, T node, ref RowGUIArgs args)
 {
     args.rowRect = position;
     base.RowGUI(args);
 }