private void ProjectWindowItemCallback(string guid, Rect selectionRect)
        {
            if (!m_skin.loaded)
            {
                return;
            }

            if (m_assetsDirectoriesInfo.IsEmpty)
            {
                return;
            }

            var path = AssetDatabase.GUIDToAssetPath(guid);

            if (string.IsNullOrEmpty(path))
            {
                return;
            }

            int      usedCount, assetsCount, editorAssetsCount;
            FileSize size;

            if (Directory.Exists(path))
            {
                path = path.TrimEnd('/', '\\');

                if (m_assetsDirectoriesInfo.GetDirectoryInfo(path, out assetsCount, out usedCount, out editorAssetsCount, out size))
                {
                    Color      backgroundColor;
                    GUIContent content;

                    if (assetsCount == 0)
                    {
                        if (editorAssetsCount == 0)
                        {
                            backgroundColor = m_skin.overlayUnusedColor;
                            content         = m_skin.overlayEmptyContent;
                        }
                        else
                        {
                            backgroundColor = m_skin.overlaySpecialColor;
                            content         = m_skin.overlayHasSpecialContent;
                        }
                    }
                    else
                    {
                        backgroundColor = Color.Lerp(m_skin.overlayUnusedColor, m_skin.overlayUsedColor, (float)usedCount / assetsCount);
                        content         = new GUIContent(string.Format("{0}/{1} | {2}", usedCount, assetsCount, size));
                    }

                    using (GUIHelpers.BackgroundColor(backgroundColor))
                    {
                        GUIHelpers.StaticLabel(selectionRect, content, m_skin.projectOverlayMask, false);
                    }
                }
                else if (AssetsDirectoriesInfo.IsInSpecialEditorDirectory(path))
                {
                    using (GUIHelpers.BackgroundColor(m_skin.overlaySpecialColor))
                    {
                        GUIHelpers.StaticLabel(selectionRect, m_skin.overlaySpecialContent, m_skin.projectOverlayMask, false);
                    }
                }
            }
            else if (m_assetsByPath != null)
            {
                AssetEntry asset;
                if (m_assetsByPath.TryGetValue(path, out asset))
                {
                    using (GUIHelpers.BackgroundColor(m_skin.overlayUsedColor))
                    {
                        GUIHelpers.StaticLabel(selectionRect, asset.sizeContent, m_skin.projectOverlayMask, false);
                    }
                }
                else
                {
                    var directory = ReliablePath.GetDirectoryName(path);
                    if (m_assetsDirectoriesInfo.GetDirectoryInfo(directory, out assetsCount, out usedCount, out editorAssetsCount, out size))
                    {
                        using (GUIHelpers.BackgroundColor(m_skin.overlayUnusedColor))
                        {
                            GUIHelpers.StaticLabel(selectionRect, m_skin.overlayUnusedContent, m_skin.projectOverlayMask, false);
                        }
                    }
                    else if (AssetsDirectoriesInfo.IsInSpecialEditorDirectory(path))
                    {
                        using (GUIHelpers.BackgroundColor(m_skin.overlaySpecialColor))
                        {
                            GUIHelpers.StaticLabel(selectionRect, m_skin.overlaySpecialContent, m_skin.projectOverlayMask, false);
                        }
                    }
                }
            }
        }