示例#1
0
        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;
        }