private IDisposableContainer PopulateToolStripFromRoot(ToolStrip toolStrip, IVirtualFolder currentRoot, bool hideNotReadyDrives)
 {
     IDisposableContainer container2;
     toolStrip.SuspendLayout();
     try
     {
         ToolStripSeparator separator;
         toolStrip.Items.Clear();
         VirtualProperty property = VirtualProperty.Get(VirtualFilePanelSettings.Default.DriveMenuProperty);
         if ((property != null) && (property.GroupName != "Volume"))
         {
             property = null;
         }
         IDisposableContainer container = new DisposableContainer();
         System.Type type = null;
         int num = 0;
         Image image = Settings.Default.IsShowIcons ? ImageProvider.Default.GetDefaultIcon(DefaultIcon.Drive, ImageHelper.DefaultSmallIconSize) : null;
         foreach (IVirtualFolder folder in VirtualItem.GetRootFolders())
         {
             if (!(!hideNotReadyDrives || IsRootFolderVisible(folder)))
             {
                 num++;
                 continue;
             }
             if ((type != null) && (folder.GetType() != type))
             {
                 separator = new ToolStripSeparator();
                 container.Add(separator);
                 toolStrip.Items.Add(separator);
             }
             type = folder.GetType();
             string str = folder.Name.Replace("&", "&&");
             int index = str.IndexOf(':');
             if (index >= 0)
             {
                 str = str.Insert(index - 1, "&");
             }
             ToolStripMenuItem toolStripItem = new ToolStripMenuItem();
             this.InitializeVirtualRootToolStrip(toolStripItem, folder);
             if (folder.Equals(currentRoot))
             {
                 toolStripItem.Font = new Font(toolStripItem.Font, FontStyle.Bold);
                 container.Add(toolStripItem.Font);
             }
             if (property != null)
             {
                 try
                 {
                     object obj2 = folder[property.PropertyId];
                     if (obj2 != null)
                     {
                         toolStripItem.ShortcutKeyDisplayString = property.ConvertToString(obj2);
                         toolStripItem.ShowShortcutKeys = true;
                     }
                 }
                 catch (SystemException exception)
                 {
                     if (!(exception is IOException) && !(exception is UnauthorizedAccessException))
                     {
                         throw;
                     }
                     toolStripItem.ShortcutKeyDisplayString = Resources.sDeviceNotReady;
                     toolStripItem.ShowShortcutKeys = true;
                 }
             }
             container.Add(toolStripItem);
             toolStrip.Items.Add(toolStripItem);
             VirtualItemToolStripEvents.UpdateItemImage(toolStripItem, folder);
         }
         if (num > 0)
         {
             separator = new ToolStripSeparator();
             container.Add(separator);
             toolStrip.Items.Add(separator);
             ToolStripItem item = new ToolStripMenuItem(string.Format(Resources.sShowHiddenDrives, num)) {
                 Tag = toolStrip
             };
             item.Click += new EventHandler(this.tsmiShowHidden_Click);
             container.Add(item);
             toolStrip.Items.Add(item);
         }
         container2 = container;
     }
     finally
     {
         toolStrip.ResumeLayout();
     }
     return container2;
 }
 private void CleanToolstrip()
 {
     IDisposableContainer container = new DisposableContainer();
     if (this.DriveItem != null)
     {
         container.Add(this.DriveItem);
     }
     foreach (ToolStripItem item in this.Items)
     {
         if ((item.Tag is IVirtualItem) && (item != this.DriveItem))
         {
             container.Add(item);
         }
     }
     container.Dispose();
 }
 private void MoreButton_DropDownOpening(object sender, EventArgs e)
 {
     ToolStripDropDownButton button = (ToolStripDropDownButton) sender;
     IDisposableContainer container = new DisposableContainer();
     foreach (ToolStripItem item in this.Items)
     {
         if (item.IsOnOverflow)
         {
             ToolStripItem toolStripItem = new ToolStripMenuItem(item.Text);
             this.InitializeVirtualItemToolStrip(toolStripItem, (IVirtualItem) item.Tag);
             toolStripItem.Click += new EventHandler(this.tssbFolder_ButtonClick);
             container.Add(toolStripItem);
             button.DropDownItems.Add(toolStripItem);
         }
     }
     button.DropDown.Tag = container;
 }
 private void tssbFolder_DropDownOpening(object sender, EventArgs e)
 {
     ToolStripDropDownItem item = (ToolStripDropDownItem) sender;
     IVirtualFolder tag = (IVirtualFolder) item.Tag;
     IVirtualFolder folder2 = ((this.PathOptions & PathView.VistaLikeBreadcrumb) > PathView.ShowNormalRootName) ? tag : tag.Parent;
     if (folder2 != null)
     {
         Image image = Settings.Default.IsShowIcons ? ImageProvider.Default.GetDefaultIcon(DefaultIcon.Folder, ImageHelper.DefaultSmallIconSize) : null;
         IVirtualItemFilter hiddenItemsFilter = VirtualFilePanelSettings.Default.HiddenItemsFilter;
         IDisposableContainer container = new DisposableContainer();
         item.DropDown.SuspendLayout();
         try
         {
             foreach (IVirtualFolder folder3 in folder2.GetFolders())
             {
                 bool flag = ((this.PathOptions & PathView.VistaLikeBreadcrumb) == PathView.ShowNormalRootName) && folder3.Equals(tag);
                 if ((flag || (hiddenItemsFilter == null)) || !hiddenItemsFilter.IsMatch(folder3))
                 {
                     ToolStripItem toolStripItem = new ToolStripMenuItem();
                     this.InitializeVirtualItemToolStrip(toolStripItem, folder3);
                     toolStripItem.Image = image;
                     toolStripItem.MergeAction = MergeAction.Replace;
                     if (flag)
                     {
                         Font font = new Font(toolStripItem.Font, FontStyle.Bold);
                         container.Add(font);
                         toolStripItem.Font = font;
                     }
                     toolStripItem.Click += new EventHandler(this.tssbFolder_ButtonClick);
                     container.Add(toolStripItem);
                     item.DropDown.Items.Add(toolStripItem);
                 }
             }
         }
         finally
         {
             item.DropDown.ResumeLayout();
         }
         item.DropDown.Tag = container;
     }
 }