Example #1
0
        private void BrowserDialog_Load(object sender, EventArgs e)
        {
            try
            {
                // Suspend the drawing of the listview
                lvBrowsers.SuspendLayout();

                // Remove all items from the listview
                lvBrowsers.Items.Clear();

                // Assign a new imagelist
                lvBrowsers.LargeImageList = new ImageList
                {
                    ImageSize  = new Size(60, 60),
                    ColorDepth = ColorDepth.Depth32Bit
                };

                // Get all browsers on the system
                browsers = PlatformBrowser.PlatformBrowser.GetInstalledBrowsers();

                // Loop through all browsers
                for (var i = 0; i < browsers.Count; i++)
                {
                    var browser = browsers[i];

                    // Get image
                    var icon        = IconExtractor.Split(browser.IconPath)[browser.IconIndex < 0 ? 0 : browser.IconIndex];
                    var icons       = IconExtractor.ExtractImagesFromIcon(icon);
                    var largestSize = icons.Max(i => i.Width);
                    var largestIcon = icons.LastOrDefault(i => i.Width == largestSize);
                    lvBrowsers.LargeImageList.Images.Add(largestIcon);

                    lvBrowsers.Items.Add(new ListViewItem
                    {
                        Text       = browser.Name,
                        Tag        = browser.ExecutablePath.Trim('\"'),
                        ImageIndex = i,
                    });
                }

                // Get default browser
                defaultBrowser = PlatformBrowser.PlatformBrowser.GetDefaultBrowser(browsers.ToList(), PlatformBrowser.Enums.eProtocolType.Http);

                // Select default browser
                if (browsers.Contains(defaultBrowser))
                {
                    var defaultBrowserListItem = lvBrowsers.Items[
                        browsers.IndexOf(
                            browsers.FirstOrDefault(b => b.ExecutablePath == defaultBrowser.ExecutablePath)
                            )
                                                 ];
                    defaultBrowserListItem.Focused = defaultBrowserListItem.Selected = true;
                }
            }
            catch (Exception)
            {
                // Don't interrupt the dialog
            }
            finally
            {
                lvBrowsers.ResumeLayout();
            }
        }