private void MenuFileOpenRecent_DropDownOpening(object sender, System.EventArgs e) { AppWorkspace.MostRecentFiles.LoadMruList(); MostRecentFile[] filesReverse = AppWorkspace.MostRecentFiles.GetFileList(); MostRecentFile[] files = new MostRecentFile[filesReverse.Length]; int i; for (i = 0; i < filesReverse.Length; ++i) { files[files.Length - i - 1] = filesReverse[i]; } foreach (ToolStripItem mi in menuFileOpenRecent.DropDownItems) { mi.Click -= new EventHandler(MenuFileOpenRecentFile_Click); } menuFileOpenRecent.DropDownItems.Clear(); i = 0; foreach (MostRecentFile mrf in files) { string menuName; if (i < 9) { menuName = "&"; } else { menuName = ""; } menuName += (1 + i).ToString() + " " + Path.GetFileName(mrf.FileName); ToolStripMenuItem mi = new ToolStripMenuItem(menuName); mi.Click += new EventHandler(MenuFileOpenRecentFile_Click); mi.ImageScaling = ToolStripItemImageScaling.None; mi.Image = (Image)mrf.Thumb.Clone(); menuFileOpenRecent.DropDownItems.Add(mi); ++i; } if (menuFileOpenRecent.DropDownItems.Count == 0) { ToolStripMenuItem none = new ToolStripMenuItem(PdnResources.GetString("Menu.File.OpenRecent.None")); none.Enabled = false; menuFileOpenRecent.DropDownItems.Add(none); } else { ToolStripSeparator separator = new ToolStripSeparator(); menuFileOpenRecent.DropDownItems.Add(separator); ToolStripMenuItem clearList = new ToolStripMenuItem(); clearList.Text = PdnResources.GetString("Menu.File.OpenRecent.ClearThisList"); menuFileOpenRecent.DropDownItems.Add(clearList); Image deleteIcon = PdnResources.GetImageResource("Icons.MenuEditEraseSelectionIcon.png").Reference; clearList.ImageTransparentColor = Utility.TransparentKey; clearList.ImageAlign = ContentAlignment.MiddleCenter; clearList.ImageScaling = ToolStripItemImageScaling.None; int iconSize = AppWorkspace.MostRecentFiles.IconSize; Bitmap bitmap = new Bitmap(iconSize + 2, iconSize + 2); using (Graphics g = Graphics.FromImage(bitmap)) { g.Clear(clearList.ImageTransparentColor); Point offset = new Point((bitmap.Width - deleteIcon.Width) / 2, (bitmap.Height - deleteIcon.Height) / 2); g.CompositingMode = CompositingMode.SourceCopy; g.DrawImage(deleteIcon, offset.X, offset.Y, deleteIcon.Width, deleteIcon.Height); } clearList.Image = bitmap; clearList.Click += new EventHandler(ClearList_Click); } }
private void OnMenuFileOpenRecentDropDownOpening(object sender, EventArgs e) { int num; MostRecentFilesService.Instance.LoadMruList(); MostRecentFile[] fileList = MostRecentFilesService.Instance.GetFileList(); MostRecentFile[] fileArray2 = new MostRecentFile[fileList.Length]; for (num = 0; num < fileList.Length; num++) { fileArray2[(fileArray2.Length - num) - 1] = fileList[num]; } foreach (ToolStripItem item in this.menuFileOpenRecent.DropDownItems) { item.Click -= new EventHandler(this.OnMenuFileOpenRecentFileClick); } this.menuFileOpenRecent.DropDownItems.Clear(); num = 0; foreach (MostRecentFile file in fileArray2) { string str; if (num < 9) { str = "&"; } else { str = ""; } int num3 = 1 + num; ToolStripMenuItem item2 = new ToolStripMenuItem(str + num3.ToString() + " " + Path.GetFileName(file.Path)); item2.Click += new EventHandler(this.OnMenuFileOpenRecentFileClick); item2.ImageScaling = ToolStripItemImageScaling.None; item2.Image = (Image)file.Thumb.Clone(); this.menuFileOpenRecent.DropDownItems.Add(item2); num++; } if (this.menuFileOpenRecent.DropDownItems.Count == 0) { ToolStripMenuItem item3 = new ToolStripMenuItem(PdnResources.GetString("Menu.File.OpenRecent.None")) { Enabled = false }; this.menuFileOpenRecent.DropDownItems.Add(item3); } else { ToolStripSeparator separator = new ToolStripSeparator(); this.menuFileOpenRecent.DropDownItems.Add(separator); ToolStripMenuItem item4 = new ToolStripMenuItem { Text = PdnResources.GetString("Menu.File.OpenRecent.ClearThisList") }; this.menuFileOpenRecent.DropDownItems.Add(item4); Image reference = PdnResources.GetImageResource("Icons.MenuEditEraseSelectionIcon.png").Reference; item4.ImageAlign = ContentAlignment.MiddleCenter; item4.ImageScaling = ToolStripItemImageScaling.None; int iconSize = MostRecentFilesService.Instance.IconSize; Bitmap image = new Bitmap(iconSize + 2, iconSize + 2, PixelFormat.Format32bppArgb); using (Graphics graphics = Graphics.FromImage(image)) { graphics.CompositingMode = CompositingMode.SourceCopy; graphics.Clear(Color.Transparent); Point point = new Point((image.Width - reference.Width) / 2, (image.Height - reference.Height) / 2); graphics.DrawImage(reference, point.X, point.Y, reference.Width, reference.Height); } item4.Image = image; item4.Click += new EventHandler(this.OnClearListClick); } }