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 @@ @@ -2028,8 +2028,6 @@
<Path name = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/MemberContextMenu">
<Include id="GotoDefinition" item="/SharpDevelop/Workbench/MainMenu/Search/GotoDefinition" />
<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 name = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/TypeContextMenu">
@ -2058,6 +2056,8 @@ @@ -2058,6 +2056,8 @@
<MenuItem id="Separator1" type="Separator" />
</Condition>
<MenuItem id="DeclaringTypeContextMenu" type="Builder" class="ICSharpCode.SharpDevelop.Editor.Commands.DeclaringTypeSubMenuBuilder" />
<Include id = "Cut" item = "/SharpDevelop/Workbench/MainMenu/Edit/Cut"/>
<Include id = "Copy" item = "/SharpDevelop/Workbench/MainMenu/Edit/Copy"/>
<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; @@ -8,31 +8,44 @@ using System.Windows.Controls;
using ICSharpCode.Core;
using ICSharpCode.Core.Presentation;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.SharpDevelop.Editor.Commands
{
/// <summary>
/// Description of DeclaringTypeSubMenuBuilder.
/// Builds context menu items with commands related to the declaring type of a member.
/// </summary>
public class DeclaringTypeSubMenuBuilder : IMenuItemBuilder
{
public DeclaringTypeSubMenuBuilder()
{
}
public System.Collections.Generic.IEnumerable<object> BuildItems(Codon codon, object parameter)
public IEnumerable<object> BuildItems(Codon codon, object parameter)
{
MemberResolveResult resolveResult = GetResolveResult() as MemberResolveResult;
if (resolveResult == null) {
return null;
}
var items = new List<MenuItem>();
items.Add(new MenuItem() {
Header = "TEST"
});
IMember member = resolveResult.Member;
IType declaringType = member.DeclaringTypeDefinition;
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;
}

Loading…
Cancel
Save