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); }
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); }
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 } }