Browse Source

Completed "Declaring type: ..." context menu basically, but currently no translated name and no proper icon.

pull/59/merge
Andreas Weizel 12 years ago
parent
commit
26ead0f9bf
  1. 4
      src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
  2. 35
      src/Main/Base/Project/Src/Editor/Commands/DeclaringTypeSubMenuBuilder.cs

4
src/Main/Base/Project/ICSharpCode.SharpDevelop.addin

@ -2028,8 +2028,6 @@
<Path name = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/MemberContextMenu"> <Path name = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/MemberContextMenu">
<Include id="GotoDefinition" item="/SharpDevelop/Workbench/MainMenu/Search/GotoDefinition" /> <Include id="GotoDefinition" item="/SharpDevelop/Workbench/MainMenu/Search/GotoDefinition" />
<Include id="Rename" item="/SharpDevelop/Workbench/MainMenu/Search/Rename" /> <Include id="Rename" item="/SharpDevelop/Workbench/MainMenu/Search/Rename" />
<MenuItem id="DeclaringTypeContextMenu" type="Builder" class="ICSharpCode.SharpDevelop.Editor.Commands.DeclaringTypeSubMenuBuilder" />
<MenuItem id = "Separator1" type = "Separator" />
</Path> </Path>
<Path name = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/TypeContextMenu"> <Path name = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/TypeContextMenu">
@ -2058,6 +2056,8 @@
<MenuItem id="Separator1" type="Separator" /> <MenuItem id="Separator1" type="Separator" />
</Condition> </Condition>
<MenuItem id="DeclaringTypeContextMenu" type="Builder" class="ICSharpCode.SharpDevelop.Editor.Commands.DeclaringTypeSubMenuBuilder" />
<Include id = "Cut" item = "/SharpDevelop/Workbench/MainMenu/Edit/Cut"/> <Include id = "Cut" item = "/SharpDevelop/Workbench/MainMenu/Edit/Cut"/>
<Include id = "Copy" item = "/SharpDevelop/Workbench/MainMenu/Edit/Copy"/> <Include id = "Copy" item = "/SharpDevelop/Workbench/MainMenu/Edit/Copy"/>
<Include id = "Paste" item = "/SharpDevelop/Workbench/MainMenu/Edit/Paste"/> <Include id = "Paste" item = "/SharpDevelop/Workbench/MainMenu/Edit/Paste"/>

35
src/Main/Base/Project/Src/Editor/Commands/DeclaringTypeSubMenuBuilder.cs

@ -8,31 +8,44 @@ using System.Windows.Controls;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.Core.Presentation; using ICSharpCode.Core.Presentation;
using ICSharpCode.NRefactory.Semantics; using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.SharpDevelop.Editor.Commands namespace ICSharpCode.SharpDevelop.Editor.Commands
{ {
/// <summary> /// <summary>
/// Description of DeclaringTypeSubMenuBuilder. /// Builds context menu items with commands related to the declaring type of a member.
/// </summary> /// </summary>
public class DeclaringTypeSubMenuBuilder : IMenuItemBuilder public class DeclaringTypeSubMenuBuilder : IMenuItemBuilder
{ {
public DeclaringTypeSubMenuBuilder() public IEnumerable<object> BuildItems(Codon codon, object parameter)
{
}
public System.Collections.Generic.IEnumerable<object> BuildItems(Codon codon, object parameter)
{ {
MemberResolveResult resolveResult = GetResolveResult() as MemberResolveResult; MemberResolveResult resolveResult = GetResolveResult() as MemberResolveResult;
if (resolveResult == null) { if (resolveResult == null) {
return null; return null;
} }
var items = new List<MenuItem>(); IMember member = resolveResult.Member;
items.Add(new MenuItem() { IType declaringType = member.DeclaringTypeDefinition;
Header = "TEST" if (declaringType == null) {
}); return null;
}
var items = new List<object>();
var declaringTypeItem = new MenuItem() {
Header = "Declaring type: " + declaringType.Name,
Icon = ClassBrowserIconService.GetIcon(declaringType).ImageSource
};
var subItems = MenuService.CreateMenuItems(
null, new TypeResolveResult(declaringType), "/SharpDevelop/ViewContent/TextEditor/ContextMenu/TypeContextMenu");
if (subItems != null) {
foreach (var item in subItems) {
declaringTypeItem.Items.Add(item);
}
}
// var items = MenuService.CreateMenuItems((UIElement) SD.Workbench, SD.Workbench, ""); items.Add(declaringTypeItem);
items.Add(new Separator());
return items; return items;
} }

Loading…
Cancel
Save