public void RefreshIcons() { SuspendLayout(); Action select = () => { }; int row = 0; IconTable.Controls.Clear(); IconTable.RowStyles.Clear(); foreach (var item in IconSourceRegistry.RegisteredSources) { var source = item.Value; var buttons = new IconSourceButtons(source); buttons.Dock = DockStyle.Fill; IconTable.RowStyles.Add(new RowStyle(SizeType.Absolute, buttons.Height)); IconTable.Controls.Add(buttons, 0, row); IconTable.ColumnStyles[0].Width = Math.Max(IconTable.ColumnStyles[0].Width, buttons.PreferredSize.Width + 5); buttons.ConfirmClicked += (s, e) => { SelectedSource = source; this.Close(); }; buttons.DeleteClicked += (s, e) => { IconSourceRegistry.Unregister(item.Key); Properties.Settings.Default.CustomIconSets.Remove(item.Key); RefreshIcons(); }; var preview = new IconSourcePreview(source, IconType.OpenFile, IconType.Save, IconType.Edit, IconType.Cut, IconType.Undo, IconType.ByteTag, IconType.StringTag, IconType.IntArrayTag, IconType.ListTag, IconType.Region, IconType.Chunk ); preview.Dock = DockStyle.Fill; IconTable.Controls.Add(preview, 1, row); IconTable.RowStyles[row].Height = Math.Max(IconTable.RowStyles[row].Height, preview.PreferredSize.Height + 5); if (CurrentSource == source) { SelectedRow = row; buttons.BackColor = Color.FromArgb(201, 255, 221); preview.BackColor = Color.FromArgb(201, 255, 221); select = () => buttons.Select(); } row++; } select(); ResumeLayout(); }
public FullIconPreviewWindow(IconSource source) { InitializeComponent(); var preview = new IconSourcePreview(source, false, (IconType[])Enum.GetValues(typeof(IconType))); preview.MaximumSize = new Size(470, 0); preview.Dock = DockStyle.Fill; Controls.Add(preview); this.Text = source.Name + " Icon Set"; this.Icon = source.GetImage(IconType.Search).Icon; }