private IconData[] CreateIconData(IIcon icon, bool highRes) { if (icon == null) { throw new ArgumentNullException(nameof(icon)); } IEnumerable <IconSizeInfo> sizes = null; if (highRes) { sizes = icon.GetHighResolutionIconSizes(); } else { sizes = icon.GetIconSizes(); } if (sizes == null || !sizes.Any()) { throw new NullReferenceException($"Specified icon '{icon.GetType().FullName}' doesn't provide any sizes"); } var iconsData = sizes.Select(s => new IconData(m_IconsDir, s.SourceImage, s.TargetSize, s.Name)).ToArray(); return(iconsData); }
private IconData[] CreateIconData(IIcon icon, bool highRes) { if (icon == null) { throw new ArgumentException("Icons are not specified"); } IconData[] iconsData; if (icon is HighResIcon) { var highResIcons = icon as HighResIcon; if (highRes) { iconsData = new IconData[] { new IconData(m_IconsDir, highResIcons.Size20x20, new Size(20, 20)), new IconData(m_IconsDir, highResIcons.Size32x32, new Size(32, 32)), new IconData(m_IconsDir, highResIcons.Size40x40, new Size(40, 40)), new IconData(m_IconsDir, highResIcons.Size64x64, new Size(64, 64)), new IconData(m_IconsDir, highResIcons.Size96x96, new Size(96, 96)), new IconData(m_IconsDir, highResIcons.Size128x128, new Size(128, 128)) }; } else { iconsData = new IconData[] { new IconData(m_IconsDir, highResIcons.Size20x20, new Size(16, 16)), new IconData(m_IconsDir, highResIcons.Size32x32, new Size(24, 24)), }; } } else if (icon is BasicIcon) { var basicIcons = icon as BasicIcon; if (highRes) { iconsData = new IconData[] { new IconData(m_IconsDir, basicIcons.Size16x16, new Size(20, 20)), new IconData(m_IconsDir, basicIcons.Size24x24, new Size(32, 32)), new IconData(m_IconsDir, basicIcons.Size24x24, new Size(40, 40)), new IconData(m_IconsDir, basicIcons.Size24x24, new Size(64, 64)), new IconData(m_IconsDir, basicIcons.Size24x24, new Size(96, 96)), new IconData(m_IconsDir, basicIcons.Size24x24, new Size(128, 128)) }; } else { iconsData = new IconData[] { new IconData(m_IconsDir, basicIcons.Size16x16, new Size(16, 16)), new IconData(m_IconsDir, basicIcons.Size24x24, new Size(24, 24)), }; } } else if (icon is MasterIcon) { var masterIcons = icon as MasterIcon; if (highRes) { iconsData = new IconData[] { new IconData(m_IconsDir, masterIcons.Icon, new Size(20, 20)), new IconData(m_IconsDir, masterIcons.Icon, new Size(32, 32)), new IconData(m_IconsDir, masterIcons.Icon, new Size(40, 40)), new IconData(m_IconsDir, masterIcons.Icon, new Size(64, 64)), new IconData(m_IconsDir, masterIcons.Icon, new Size(96, 96)), new IconData(m_IconsDir, masterIcons.Icon, new Size(128, 128)) }; } else { iconsData = new IconData[] { new IconData(m_IconsDir, masterIcons.Icon, new Size(16, 16)), new IconData(m_IconsDir, masterIcons.Icon, new Size(24, 24)), }; } } else { throw new NotSupportedException($"Specified icon '{icon.GetType().FullName}' is not supported"); } return(iconsData); }