public SimpleCustomizeFolder(ICustomizeFolder source)
 {
     this.FAutoSizeColumns = source.AutoSizeColumns;
     this.FColumns = source.Columns;
     this.FIcon = source.Icon;
     this.FFilter = source.Filter;
     this.FSort = source.Sort;
     this.FListColumnCount = source.ListColumnCount;
     this.FThumbnailSize = source.ThumbnailSize;
     this.FThumbnailSpacing = source.ThumbnailSpacing;
     this.FView = source.View;
     this.FBackColor = source.BackColor;
     this.FForeColor = source.ForeColor;
 }
 private void btnCustomize_Click(object sender, EventArgs e)
 {
     using (CustomizeFolderDialog dialog = new CustomizeFolderDialog())
     {
         base.AddOwnedForm(dialog);
         dialog.ApplyToChildrenEnabled = false;
         this.FCustomize = new SimpleCustomizeFolder();
         int[] properties = new int[1];
         if (dialog.Execute(this.FFolder, this.FCustomize, null, new VirtualPropertySet(properties)))
         {
             dialog.UpdateCustomizeFolder(this.FCustomize);
         }
         else
         {
             this.FCustomize = null;
         }
     }
 }
 public static void Set(this ICustomizeFolder dest, ICustomizeFolder source, CustomizeFolderParts parts)
 {
     if ((parts & CustomizeFolderParts.Columns) > 0)
     {
         dest.AutoSizeColumns = source.AutoSizeColumns;
         dest.Columns = source.Columns;
     }
     if ((parts & CustomizeFolderParts.Icon) > 0)
     {
         dest.Icon = source.Icon;
     }
     if ((parts & CustomizeFolderParts.Filter) > 0)
     {
         dest.Filter = source.Filter;
     }
     if ((parts & CustomizeFolderParts.Sort) > 0)
     {
         dest.Sort = source.Sort;
     }
     if ((parts & CustomizeFolderParts.ListColumnCount) > 0)
     {
         dest.ListColumnCount = source.ListColumnCount;
     }
     if ((parts & CustomizeFolderParts.ThumbnailSize) > 0)
     {
         dest.ThumbnailSize = source.ThumbnailSize;
         dest.ThumbnailSpacing = source.ThumbnailSpacing;
     }
     if ((parts & CustomizeFolderParts.View) > 0)
     {
         dest.View = source.View;
     }
     if ((parts & CustomizeFolderParts.Colors) > 0)
     {
         dest.BackColor = source.BackColor;
         dest.ForeColor = source.ForeColor;
     }
 }
 public SimpleCustomizeFolder(CustomizeFolderParts updatableParts, ICustomizeFolder source) : this(source)
 {
     this.FUpdatebleParts = updatableParts;
 }
 public void UpdateCustomizeFolder(ICustomizeFolder customize)
 {
     if ((customize.UpdatableParts & CustomizeFolderParts.Colors) > 0)
     {
         customize.BackColor = this.btnListBackColor.Color;
         customize.ForeColor = this.btnListForeColor.Color;
     }
     else
     {
         customize.BackColor = Color.Empty;
         customize.ForeColor = Color.Empty;
     }
     if ((customize.UpdatableParts & CustomizeFolderParts.Filter) > 0)
     {
         customize.Filter = this.chkCustomizeFilter.Checked ? (this.btnCustomizeFilter.Tag as IVirtualItemFilter) : null;
     }
     if ((customize.UpdatableParts & CustomizeFolderParts.Sort) > 0)
     {
         customize.Sort = this.chkCustomizeSort.Checked ? (this.btnCustomizeSort.Tag as VirtualItemComparer) : null;
     }
     if ((customize.UpdatableParts & CustomizeFolderParts.View) > 0)
     {
         customize.View = this.chkCustomizeView.Checked ? ((PanelView?) this.cmbView.SelectedItem) : null;
     }
     CustomizeFolderParts parts = CustomizeFolderParts.ListColumnCount | CustomizeFolderParts.View;
     if (((((customize.UpdatableParts & parts) == parts) && customize.View.HasValue) && (((PanelView) customize.View.Value) == PanelView.List)) && (this.FListColumnCount > 0))
     {
         customize.ListColumnCount = new int?(this.FListColumnCount);
     }
     else
     {
         customize.ListColumnCount = null;
     }
     CustomizeFolderParts parts2 = CustomizeFolderParts.ThumbnailSize | CustomizeFolderParts.View;
     if ((((customize.UpdatableParts & parts2) == parts2) && customize.View.HasValue) && (((PanelView) customize.View.Value) == PanelView.Thumbnail))
     {
         customize.ThumbnailSize = this.FThumbnailSize;
         customize.ThumbnailSpacing = this.FThumbnailSpacing;
     }
     else
     {
         customize.ThumbnailSize = Size.Empty;
         customize.ThumbnailSpacing = Size.Empty;
     }
     if ((customize.UpdatableParts & CustomizeFolderParts.Columns) > 0)
     {
         customize.AutoSizeColumns = this.chkCustomizeColumns.Checked ? new bool?(this.FAutoSizeColumns) : null;
         IEnumerable<ListViewColumnInfo> tag = this.btnCustomizeColumns.Tag as IEnumerable<ListViewColumnInfo>;
         if (this.chkCustomizeColumns.Checked && (tag != null))
         {
             customize.Columns = new List<ListViewColumnInfo>(tag).ToArray();
         }
         else
         {
             customize.Columns = null;
         }
     }
     if ((customize.UpdatableParts & CustomizeFolderParts.Icon) > 0)
     {
         if (this.chkCustomizeIcon.Checked && this.UpdateIcon(this.txtIconLocation.Text))
         {
             customize.Icon = IconLocation.TryParse(this.txtIconLocation.Text);
         }
         else
         {
             customize.Icon = null;
         }
     }
 }
 public bool Execute(IVirtualFolder folder, ICustomizeFolder customize, ICustomizeFolder defaultCustomize, VirtualPropertySet availableProperties)
 {
     if (folder == null)
     {
         throw new ArgumentNullException("folder");
     }
     if (customize == null)
     {
         throw new ArgumentNullException("customizeFolder");
     }
     this.FAvailableProperties = availableProperties;
     this.FCustomizeFolder = customize;
     this.tsFolder.Add(folder);
     this.btnListBackColor.Color = (customize.BackColor.IsEmpty && (defaultCustomize != null)) ? defaultCustomize.BackColor : customize.BackColor;
     this.btnListForeColor.Color = (customize.ForeColor.IsEmpty && (defaultCustomize != null)) ? defaultCustomize.ForeColor : customize.ForeColor;
     this.chkCustomizeFilter.Enabled = (this.FCustomizeFolder.UpdatableParts & CustomizeFolderParts.Filter) > 0;
     if (this.chkCustomizeFilter.Enabled)
     {
         this.btnCustomizeFilter.Tag = this.FCustomizeFolder.Filter;
         this.chkCustomizeFilter.Checked = this.btnCustomizeFilter.Tag != null;
         if ((this.btnCustomizeFilter.Tag == null) && (defaultCustomize != null))
         {
             this.btnCustomizeFilter.Tag = defaultCustomize.Filter;
         }
     }
     this.chkCustomizeSort.Enabled = (this.FCustomizeFolder.UpdatableParts & CustomizeFolderParts.Sort) > 0;
     if (this.chkCustomizeSort.Enabled)
     {
         this.btnCustomizeSort.Tag = this.FCustomizeFolder.Sort;
         this.chkCustomizeSort.Checked = this.btnCustomizeSort.Tag != null;
         if ((this.btnCustomizeSort.Tag == null) && (defaultCustomize != null))
         {
             this.btnCustomizeSort.Tag = defaultCustomize.Sort;
         }
     }
     this.chkCustomizeView.Enabled = (this.FCustomizeFolder.UpdatableParts & CustomizeFolderParts.View) > 0;
     if (this.chkCustomizeView.Enabled)
     {
         this.FFolderView = this.FCustomizeFolder.View;
         this.chkCustomizeView.Checked = this.FFolderView.HasValue;
         if (this.FFolderView.HasValue)
         {
             this.cmbView.SelectedItem = this.FFolderView.Value;
         }
         else if (defaultCustomize != null)
         {
             this.cmbView.SelectedItem = defaultCustomize.View;
         }
         int? listColumnCount = this.FCustomizeFolder.ListColumnCount;
         if (listColumnCount.HasValue)
         {
             this.FListColumnCount = listColumnCount.Value;
         }
         else if ((defaultCustomize != null) && defaultCustomize.ListColumnCount.HasValue)
         {
             this.FListColumnCount = defaultCustomize.ListColumnCount.Value;
         }
         this.FThumbnailSize = this.FCustomizeFolder.ThumbnailSize;
         if (this.FThumbnailSize.IsEmpty && (defaultCustomize != null))
         {
             this.FThumbnailSize = defaultCustomize.ThumbnailSize;
         }
         this.FThumbnailSpacing = this.FCustomizeFolder.ThumbnailSpacing;
         if (this.FThumbnailSpacing.IsEmpty && (defaultCustomize != null))
         {
             this.FThumbnailSpacing = defaultCustomize.ThumbnailSpacing;
         }
     }
     this.chkCustomizeColumns.Enabled = (this.FCustomizeFolder.UpdatableParts & CustomizeFolderParts.Columns) > 0;
     if (this.chkCustomizeColumns.Enabled)
     {
         this.btnCustomizeColumns.Tag = this.FCustomizeFolder.Columns;
         this.chkCustomizeColumns.Checked = this.btnCustomizeColumns.Tag != null;
         if ((this.btnCustomizeColumns.Tag == null) && (defaultCustomize != null))
         {
             this.btnCustomizeColumns.Tag = defaultCustomize.Columns;
         }
         bool? autoSizeColumns = this.FCustomizeFolder.AutoSizeColumns;
         if (autoSizeColumns.HasValue)
         {
             this.FAutoSizeColumns = autoSizeColumns.Value;
         }
         else if ((defaultCustomize != null) && defaultCustomize.AutoSizeColumns.HasValue)
         {
             this.FAutoSizeColumns = defaultCustomize.AutoSizeColumns.Value;
         }
     }
     Size size = new Size(0x20, 0x20);
     if ((this.FCustomizeFolder.UpdatableParts & CustomizeFolderParts.Icon) == 0)
     {
         this.chkCustomizeIcon.Enabled = false;
         IVirtualItemUI mui = folder as IVirtualItemUI;
         if (mui != null)
         {
             this.picIcon.Image = mui.GetIcon(size, 0);
         }
         else
         {
             this.picIcon.Image = ImageProvider.Default.GetDefaultIcon(DefaultIcon.Drive, size);
         }
     }
     else
     {
         IconLocation icon = this.FCustomizeFolder.Icon;
         if (icon != null)
         {
             this.picIcon.Image = CustomImageProvider.LoadIcon(Environment.ExpandEnvironmentVariables(icon.IconFileName), icon.IconIndex, size);
         }
         if (this.picIcon.Image != null)
         {
             this.txtIconLocation.Text = icon.ToString();
             this.chkCustomizeIcon.Checked = true;
         }
         else
         {
             this.picIcon.Image = ImageProvider.Default.GetDefaultIcon(DefaultIcon.Folder, size);
         }
     }
     this.ViewTypeConverter = TypeDescriptor.GetConverter(typeof(PanelView));
     this.CheckWatcher.RememberValues();
     return (base.ShowDialog() == DialogResult.OK);
 }
 public static void Set(this ICustomizeFolder dest, ICustomizeFolder source)
 {
     dest.Set(source, CustomizeFolderParts.All);
 }