示例#1
0
        public Icon GetResourceIcon(IResource resource)
        {
            if (resource.Type == "Weblink")
            {
                if (resource.HasProp(Core.Props.LastError))
                {
                    return(_errorWeblinkIcon);
                }

                IResource source = resource.GetLinkProp("Source");
                if (source == null)
                {
                    return(_emptyWeblinkIcon);
                }

                string url = resource.GetStringProp(_propURL);
                if (url != null)
                {
                    Icon icon = _favIconManager.GetResourceFavIcon(url);
                    if (icon != null)
                    {
                        return(icon);
                    }
                    _favIconManager.DownloadFavIcon(url);
                }
                string favIconUrl = resource.GetStringProp(_propFaviconUrl);
                if (favIconUrl != null)
                {
                    if (url != null)
                    {
                        try { favIconUrl = new Uri(new Uri(url), favIconUrl).AbsoluteUri; }
                        catch {}
                    }
                    Icon icon = _favIconManager.GetFavIcon(favIconUrl);
                    if (icon != null)
                    {
                        return(icon);
                    }
                    _favIconManager.DownloadFavIcon(favIconUrl);
                }

                IResourceIconProvider provider = Core.ResourceIconManager.GetResourceIconProvider(source.Type);
                if (provider != null)
                {
                    return(provider.GetResourceIcon(source));
                }
            }
            return(null);
        }
示例#2
0
        public int GetIconIndex(IResource res)
        {
            if (Core.ResourceStore == null)
            {
                return(0);
            }

            IResourceIconProvider provider = (IResourceIconProvider)_resourceIconProviders [res.Type];

            if (provider != null)
            {
                Icon icon = provider.GetResourceIcon(res);
                return(AddIconIfNew(icon));
            }

            return(0);
        }
示例#3
0
文件: FlagColumn.cs 项目: mo5h/omeo
        public void Draw(IResource res, Graphics g, Rectangle rc)
        {
            int x = rc.Left + (rc.Width - _imageList.ImageSize.Width) / 2;

            IResource flag = res.GetLinkProp("Flag");

            if (flag != null)
            {
                Icon icon = _flagIconProvider.GetResourceIcon(flag);
                if (icon != null)
                {
                    g.DrawIcon(icon, x, rc.Top);
                }
            }
            else if (!Core.ResourceStore.ResourceTypes [res.Type].HasFlag(ResourceTypeFlags.Internal))
            {
                _imageList.Draw(g, x, rc.Top, 1);     // FlagNoProp.ico
            }
        }