Browse Source

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
shortcuts
David Alpert 20 years ago
parent
commit
76f8cab016
  1. 9
      src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs
  2. 38
      src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs

9
src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanel.cs

@ -22,11 +22,18 @@ using ICSharpCode.SharpDevelop.Gui;
namespace SearchAndReplace namespace SearchAndReplace
{ {
/// <summary>
/// Specifies the format for viewing search results in the <see cref="SearchResultPanel"/>.
/// </summary>
/// <remarks>
/// The members of this enumeration are used to auto-generate the
/// 'Select Search Mode' drop-down menu in the <see cref="SearchResultPanel"/>.
/// </remarks>
public enum SearchResultPanelViewMode public enum SearchResultPanelViewMode
{ {
Flat, Flat,
PerFile, PerFile,
Structural //Structural // TODO: what is this intended for?
} }
public class SearchResultPanel : AbstractPadContent, IOwnerState public class SearchResultPanel : AbstractPadContent, IOwnerState

38
src/Main/Base/Project/Src/TextEditor/SearchAndReplace/Pad/SearchResultPanelToolbarCommands.cs

@ -114,25 +114,37 @@ namespace SearchAndReplace
PadDescriptor searchResultPanel = WorkbenchSingleton.Workbench.GetPad(typeof(SearchResultPanel)); PadDescriptor searchResultPanel = WorkbenchSingleton.Workbench.GetPad(typeof(SearchResultPanel));
if (searchResultPanel != null) { if (searchResultPanel != null) {
searchResultPanel.BringPadToFront(); searchResultPanel.BringPadToFront();
SearchResultPanel.Instance.ViewMode = (SearchResultPanelViewMode)((ToolStripItem)sender).Tag; SearchResultPanel.Instance.ViewMode = (SearchResultPanelViewMode)((ToolStripItem)sender).Tag; ;
UpdateDropDownItems();
} else { } else {
MessageService.ShowError("SearchResultPanel can't be found."); 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() void GenerateDropDownItems()
{ {
ToolStripItem newItem = new ToolStripMenuItem(); ToolStripMenuItem newItem = null;
newItem.Text = StringParser.Parse("${res:MainWindow.Windows.SearchResultPanel.PerFile}"); string menuItemText = String.Empty;
newItem.Tag = SearchResultPanelViewMode.PerFile;
newItem.Click += new EventHandler(SetViewMode); // Use SearchResultPanelViewMode enum to generate the menu choices automatically.
dropDownButton.DropDownItems.Add(newItem); foreach (SearchResultPanelViewMode viewMode in System.Enum.GetValues(typeof(SearchResultPanelViewMode))) {
newItem = new ToolStripMenuItem();
newItem = new ToolStripMenuItem(); newItem.Text = StringParser.Parse("${res:MainWindow.Windows.SearchResultPanel."+viewMode.ToString()+"}");
newItem.Text = StringParser.Parse("${res:MainWindow.Windows.SearchResultPanel.Flat}"); newItem.Tag = viewMode;
newItem.Tag = SearchResultPanelViewMode.Flat; newItem.Click += new EventHandler(SetViewMode);
newItem.Click += new EventHandler(SetViewMode); newItem.Checked = SearchResultPanel.Instance.ViewMode == viewMode;
dropDownButton.DropDownItems.Add(newItem); dropDownButton.DropDownItems.Add(newItem);
}
} }
protected override void OnOwnerChanged(EventArgs e) protected override void OnOwnerChanged(EventArgs e)

Loading…
Cancel
Save