From 76f8cab0169e3163e82d4227d2450e29c2633062 Mon Sep 17 00:00:00 2001 From: David Alpert Date: Mon, 16 Jan 2006 20:35:51 +0000 Subject: [PATCH] SearchResultPanel's 'Select Search Mode' drop-down menu is now generated dynamically from the SearchResultPanelViewMode enum. The drop-down menu now shows which mode is currently selected by setting & updating the ToolStripMenuItem.Checked property of each menu entry. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1000 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../SearchAndReplace/Pad/SearchResultPanel.cs | 9 ++++- .../Pad/SearchResultPanelToolbarCommands.cs | 38 ++++++++++++------- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs index 6edd246757..87427a98dc 100644 --- a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs +++ b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs @@ -22,11 +22,18 @@ using ICSharpCode.SharpDevelop.Gui; namespace SearchAndReplace { + /// + /// Specifies the format for viewing search results in the . + /// + /// + /// The members of this enumeration are used to auto-generate the + /// 'Select Search Mode' drop-down menu in the . + /// public enum SearchResultPanelViewMode { Flat, PerFile, - Structural + //Structural // TODO: what is this intended for? } public class SearchResultPanel : AbstractPadContent, IOwnerState diff --git a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs index f201501efe..3ac6c9c753 100644 --- a/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs +++ b/src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs @@ -114,25 +114,37 @@ namespace SearchAndReplace PadDescriptor searchResultPanel = WorkbenchSingleton.Workbench.GetPad(typeof(SearchResultPanel)); if (searchResultPanel != null) { searchResultPanel.BringPadToFront(); - SearchResultPanel.Instance.ViewMode = (SearchResultPanelViewMode)((ToolStripItem)sender).Tag; + SearchResultPanel.Instance.ViewMode = (SearchResultPanelViewMode)((ToolStripItem)sender).Tag; ; + UpdateDropDownItems(); } else { MessageService.ShowError("SearchResultPanel can't be found."); } } - + + void UpdateDropDownItems() + { + // Synchronize the Checked state of the menu items with + // the current ViewMode of the SearchResultPanel. + foreach(ToolStripItem item in dropDownButton.DropDownItems) { + ((ToolStripMenuItem)item).Checked = + (SearchResultPanelViewMode)item.Tag == SearchResultPanel.Instance.ViewMode; + } + } + void GenerateDropDownItems() { - ToolStripItem newItem = new ToolStripMenuItem(); - newItem.Text = StringParser.Parse("${res:MainWindow.Windows.SearchResultPanel.PerFile}"); - newItem.Tag = SearchResultPanelViewMode.PerFile; - newItem.Click += new EventHandler(SetViewMode); - dropDownButton.DropDownItems.Add(newItem); - - newItem = new ToolStripMenuItem(); - newItem.Text = StringParser.Parse("${res:MainWindow.Windows.SearchResultPanel.Flat}"); - newItem.Tag = SearchResultPanelViewMode.Flat; - newItem.Click += new EventHandler(SetViewMode); - dropDownButton.DropDownItems.Add(newItem); + ToolStripMenuItem newItem = null; + string menuItemText = String.Empty; + + // Use SearchResultPanelViewMode enum to generate the menu choices automatically. + foreach (SearchResultPanelViewMode viewMode in System.Enum.GetValues(typeof(SearchResultPanelViewMode))) { + newItem = new ToolStripMenuItem(); + newItem.Text = StringParser.Parse("${res:MainWindow.Windows.SearchResultPanel."+viewMode.ToString()+"}"); + newItem.Tag = viewMode; + newItem.Click += new EventHandler(SetViewMode); + newItem.Checked = SearchResultPanel.Instance.ViewMode == viewMode; + dropDownButton.DropDownItems.Add(newItem); + } } protected override void OnOwnerChanged(EventArgs e)