UnityEditor.AssetsTreeViewGUI.OnIconOverlayGUI C# (CSharp) Method

OnIconOverlayGUI() private method

private OnIconOverlayGUI ( TreeViewItem item, Rect overlayRect ) : void
item TreeViewItem
overlayRect UnityEngine.Rect
return void
        private void OnIconOverlayGUI(TreeViewItem item, Rect overlayRect)
        {
            if (((UnityConnect.instance.userInfo.whitelisted && Collab.instance.collabInfo.whitelisted) && CollabAccess.Instance.IsServiceEnabled()) && AssetDatabase.IsMainAsset(item.id))
            {
                CollabProjectHook.OnProjectWindowItemIconOverlay(AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(item.id)), overlayRect);
            }
            if (s_VCEnabled && AssetDatabase.IsMainAsset(item.id))
            {
                ProjectHooks.OnProjectWindowItem(AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(item.id)), overlayRect);
            }
        }

Usage Example

Example #1
0
        public void PrefabStageHeaderGUI(Rect rect)
        {
            var currentItem = StageNavigationManager.instance.currentItem;

            if (currentItem.isMainStage)
            {
                Debug.LogError("Not a Prefab scene");
                return;
            }

            var prefabStage = currentItem.prefabStage;

            if (prefabStage == null)
            {
                return;
            }

            // Cache header text
            if (m_PrefabHeaderContent == null || m_LastPrefabStageModifiedState == prefabStage.HasSceneBeenModified())
            {
                CachePrefabHeaderText(currentItem);
            }
            m_LastPrefabStageModifiedState = prefabStage.HasSceneBeenModified();

            // Background
            GUI.Label(rect, GUIContent.none, Styles.prefabHeaderBg);

            // Back button
            if (Event.current.type == EventType.Repaint)
            {
                Rect renderRect = new Rect(
                    rect.x + Styles.leftArrow.margin.left,
                    rect.y + (rect.height - Styles.leftArrow.fixedHeight) / 2,
                    Styles.leftArrow.fixedWidth,
                    Styles.leftArrow.fixedHeight);
                Styles.leftArrow.Draw(renderRect, GUIContent.none, false, false, false, false);
            }
            Rect interactionRect = new Rect(
                rect.x,
                rect.y,
                Styles.leftArrow.fixedWidth + Styles.leftArrow.margin.horizontal,
                rect.height);

            if (GUI.Button(interactionRect, GUIContent.none, GUIStyle.none))
            {
                StageNavigationManager.instance.NavigateBack(StageNavigationManager.Analytics.ChangeType.NavigateBackViaHierarchyHeaderLeftArrow);
            }

            // Prefab icon and name
            EditorGUIUtility.SetIconSize(new Vector2(16, 16));
            float width           = TreeViewGUI.Styles.lineBoldStyle.CalcSize(m_PrefabHeaderContent).x;
            float xStart          = Styles.leftArrow.margin.left + Styles.leftArrow.fixedWidth;
            float space           = rect.width;
            float offsetFromStart = Mathf.Max(xStart, (space - width) / 2);
            Rect  labelRect       = new Rect(offsetFromStart, rect.y + 2, rect.width - xStart, 20);

            if (GUI.Button(labelRect, m_PrefabHeaderContent, currentItem.valid ? BreadcrumbBar.DefaultStyles.labelBold : BreadcrumbBar.DefaultStyles.labelBoldMissing))
            {
                EditorGUIUtility.PingObject(AssetDatabase.LoadMainAssetAtPath(prefabStage.prefabAssetPath));
            }
            EditorGUIUtility.SetIconSize(Vector2.zero);

            // Version control overlay icons
            if (VersionControl.Provider.isActive)
            {
                Rect overlayRect = labelRect;
                overlayRect.width  = 16;
                overlayRect.y     += (overlayRect.height - 16) / 2;
                overlayRect.height = 16;
                AssetsTreeViewGUI.OnIconOverlayGUI(AssetDatabase.LoadMainAssetAtPath(currentItem.prefabAssetPath).GetInstanceID(), overlayRect, true);
            }
        }
All Usage Examples Of UnityEditor.AssetsTreeViewGUI::OnIconOverlayGUI