Author: mkrueger
Date: 2008-02-06 23:55:22 -0500 (Wed, 06 Feb 2008)
New Revision: 95113
Added:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs
Log:
* MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs,
MonoDevelop.AssemblyBrowser.mdp,
MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs,
MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs,
MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs: Worked
on assembly browser.
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
2008-02-07 04:54:57 UTC (rev 95112)
+++ trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
2008-02-07 04:55:22 UTC (rev 95113)
@@ -1,6 +1,20 @@
2008-02-07 Mike Krüger <[EMAIL PROTECTED]>
* MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs,
+ MonoDevelop.AssemblyBrowser.mdp,
+ MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs,
+ MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs,
+ MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs: Worked on
+ assembly browser.
+
+2008-02-07 Mike Krüger <[EMAIL PROTECTED]>
+
+ * MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs,
MonoDevelop.AssemblyBrowser.Dom/DomCecilParameter.cs,
MonoDevelop.AssemblyBrowser.Dom/DomCecilType.cs,
MonoDevelop.AssemblyBrowser.Dom/DomCecilEvent.cs,
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
2008-02-07 04:55:22 UTC (rev 95113)
@@ -28,6 +28,7 @@
using System;
+using Gtk;
using Mono.Cecil;
using MonoDevelop.Ide.Gui;
@@ -44,7 +45,7 @@
return treeView;
}
}
-
+
public AssemblyBrowserWidget ()
{
this.Build();
@@ -67,6 +68,22 @@
}, new TreePadOption [] {});
scrolledwindow2.Add (treeView);
scrolledwindow2.ShowAll ();
+ this.label2.Style.Font = Gdk.Font.FromDescription
(Pango.FontDescription.FromString ("Monospace 12"));
+
+ treeView.Tree.CursorChanged += delegate {
+ ITreeNavigator nav = treeView.GetSelectedNode
();
+ if (nav != null) {
+
System.Console.WriteLine(nav.TypeNodeBuilder);
+ IAssemblyBrowserNodeBuilder builder =
nav.TypeNodeBuilder as IAssemblyBrowserNodeBuilder;
+
+ if (builder != null) {
+ this.label2.Markup
= builder.GetDescription (nav.DataItem);
+
this.disassemblerTextview.Buffer.Text = builder.GetDisassembly (nav.DataItem);
+ } else {
+ this.label2.Markup =
this.disassemblerTextview.Buffer.Text = "";
+ }
+ }
+ };
}
public void AddReference (string fileName)
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs
2008-02-07 04:55:22 UTC (rev 95113)
@@ -32,12 +32,13 @@
using MonoDevelop.Core.Gui;
using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Dom.Output;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Gui.Pads;
namespace MonoDevelop.AssemblyBrowser
{
- public class DomEventNodeBuilder : TypeNodeBuilder
+ public class DomEventNodeBuilder : TypeNodeBuilder,
IAssemblyBrowserNodeBuilder
{
static readonly string[] iconTable = {Stock.Event,
Stock.PrivateEvent, Stock.ProtectedEvent, Stock.InternalEvent};
@@ -65,5 +66,15 @@
return 1;
}
+ public string GetDescription (object dataObject)
+ {
+ IEvent evt = (IEvent)dataObject;
+ return AmbienceService.Default.GetString (evt,
OutputFlags.AssemblyBrowserDescription);
+ }
+ public string GetDisassembly (object dataObject)
+ {
+ return "TODO";
+ }
+
}
}
\ No newline at end of file
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs
2008-02-07 04:55:22 UTC (rev 95113)
@@ -38,7 +38,7 @@
namespace MonoDevelop.AssemblyBrowser
{
- public class DomFieldNodeBuilder : TypeNodeBuilder
+ public class DomFieldNodeBuilder : TypeNodeBuilder,
IAssemblyBrowserNodeBuilder
{
static readonly string[] iconTable = {Stock.Field,
Stock.PrivateField, Stock.ProtectedField, Stock.InternalField};
@@ -71,5 +71,16 @@
return
((IField)thisNode.DataItem).Name.CompareTo (((IField)otherNode.DataItem).Name);
return -1;
}
+
+ public string GetDescription (object dataObject)
+ {
+ IField field = (IField)dataObject;
+ return AmbienceService.Default.GetString (field,
OutputFlags.AssemblyBrowserDescription);
+ }
+
+ public string GetDisassembly (object dataObject)
+ {
+ return "TODO";
+ }
}
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs
2008-02-07 04:55:22 UTC (rev 95113)
@@ -27,18 +27,21 @@
//
using System;
+using System.Text;
using Mono.Cecil;
+using Mono.Cecil.Cil;
using MonoDevelop.Core.Gui;
using MonoDevelop.Ide.Dom;
using MonoDevelop.Ide.Dom.Output;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Gui.Pads;
+using MonoDevelop.AssemblyBrowser.Dom;
namespace MonoDevelop.AssemblyBrowser
{
- public class DomMethodNodeBuilder : TypeNodeBuilder
+ public class DomMethodNodeBuilder : TypeNodeBuilder,
IAssemblyBrowserNodeBuilder
{
static readonly string[] iconTable = {Stock.Method,
Stock.PrivateMethod, Stock.ProtectedMethod, Stock.InternalMethod};
@@ -68,5 +71,34 @@
return -1;
}
+
+ public string GetDescription (object dataObject)
+ {
+ IMethod method = (IMethod)dataObject;
+ return AmbienceService.Default.GetString (method,
OutputFlags.AssemblyBrowserDescription);
+ }
+
+ public string GetDisassembly (object dataObject)
+ {
+ DomCecilMethod method = dataObject as DomCecilMethod;
+ if (method == null)
+ return "";
+ if (method.MethodDefinition.IsPInvokeImpl)
+ return "Method is P/Invoke";
+ if (method.MethodDefinition.Body == null)
+ return "Interface method";
+ StringBuilder result = new StringBuilder ();
+ foreach (Instruction instruction in
method.MethodDefinition.Body.Instructions ) {
+ result.Append (String.Format ("IL_{0:X4} {1} ",
+
instruction.Offset,
+
instruction.OpCode));
+ if (instruction.Operand != null)
+ result.Append
(instruction.Operand.GetType() == typeof(string) ? String.Format( "\"{0}\"",
instruction.Operand ) :instruction.Operand.ToString());
+ result.AppendLine ();
+ }
+
+ return result.ToString ();
+ }
+
}
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs
2008-02-07 04:55:22 UTC (rev 95113)
@@ -38,7 +38,7 @@
namespace MonoDevelop.AssemblyBrowser
{
- public class DomPropertyNodeBuilder : TypeNodeBuilder
+ public class DomPropertyNodeBuilder : TypeNodeBuilder,
IAssemblyBrowserNodeBuilder
{
static readonly string[] iconTable = {Stock.Property,
Stock.PrivateProperty, Stock.ProtectedProperty, Stock.InternalProperty};
@@ -69,5 +69,15 @@
return -1;
}
+ public string GetDescription (object dataObject)
+ {
+ IProperty property = (IProperty)dataObject;
+ return AmbienceService.Default.GetString (property,
OutputFlags.AssemblyBrowserDescription);
+ }
+ public string GetDisassembly (object dataObject)
+ {
+ return "TODO";
+ }
+
}
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs
2008-02-07 04:55:22 UTC (rev 95113)
@@ -32,12 +32,13 @@
using MonoDevelop.Core.Gui;
using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Dom.Output;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Gui.Pads;
namespace MonoDevelop.AssemblyBrowser
{
- public class DomTypeNodeBuilder : TypeNodeBuilder
+ public class DomTypeNodeBuilder : TypeNodeBuilder,
IAssemblyBrowserNodeBuilder
{
public override Type NodeDataType {
get { return typeof(IType); }
@@ -96,5 +97,16 @@
{
return true;
}
+
+ public string GetDescription (object dataObject)
+ {
+ IType type = (IType)dataObject;
+ return AmbienceService.Default.GetString (type,
OutputFlags.AssemblyBrowserDescription);
+ }
+ public string GetDisassembly (object dataObject)
+ {
+ return "TODO";
+ }
+
}
}
Added:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs
2008-02-07 04:55:22 UTC (rev 95113)
@@ -0,0 +1,38 @@
+//
+// IAssemblyBrowserNodeBuilder.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace MonoDevelop.AssemblyBrowser
+{
+ public interface IAssemblyBrowserNodeBuilder
+ {
+ string GetDescription (object dataObject);
+ string GetDisassembly (object dataObject);
+ }
+}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs
2008-02-07 04:55:22 UTC (rev 95113)
@@ -28,18 +28,20 @@
using System;
using System.Collections.Generic;
+using System.Text;
using Mono.Cecil;
using MonoDevelop.Core.Gui;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Dom.Output;
using MonoDevelop.Ide.Gui.Pads;
using MonoDevelop.AssemblyBrowser.Dom;
namespace MonoDevelop.AssemblyBrowser
{
- public class NamespaceBuilder : TypeNodeBuilder
+ public class NamespaceBuilder : TypeNodeBuilder,
IAssemblyBrowserNodeBuilder
{
public override Type NodeDataType {
get { return typeof(Namespace); }
@@ -70,5 +72,16 @@
{
return true;
}
+
+ public string GetDescription (object dataObject)
+ {
+ Namespace ns = (Namespace)dataObject;
+ return AmbienceService.Default.GetString (ns.Name,
OutputFlags.AssemblyBrowserDescription);
+ }
+
+ public string GetDisassembly (object dataObject)
+ {
+ return "TODO";
+ }
}
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs
2008-02-07 04:55:22 UTC (rev 95113)
@@ -35,6 +35,12 @@
{
MethodDefinition methodDefinition;
+ public MethodDefinition MethodDefinition {
+ get {
+ return methodDefinition;
+ }
+ }
+
public DomCecilMethod (MethodDefinition methodDefinition)
{
this.methodDefinition = methodDefinition;
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
2008-02-07 04:54:57 UTC (rev 95112)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
2008-02-07 04:55:22 UTC (rev 95113)
@@ -53,6 +53,7 @@
<File name="MonoDevelop.AssemblyBrowser.Dom/DomCecilReturnType.cs"
subtype="Code" buildaction="Compile" />
<File name="MonoDevelop.AssemblyBrowser/DomReturnTypeNodeBuilder.cs"
subtype="Code" buildaction="Compile" />
<File name="MonoDevelop.AssemblyBrowser.Dom/DomCecilParameter.cs"
subtype="Code" buildaction="Compile" />
+ <File name="MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs"
subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Project" localcopy="True" refto="MonoDevelop.Core"
/>
@@ -66,6 +67,7 @@
<ProjectReference type="Project" localcopy="True" refto="Mono.Cecil" />
<ProjectReference type="Gac" localcopy="True" refto="System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<ProjectReference type="Gac" localcopy="True" refto="Mono.Posix,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
+ <ProjectReference type="Gac" localcopy="True" refto="pango-sharp,
Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
</References>
<GtkDesignInfo isWidgetLibrary="True" gtkVersion="2.10.2">
<ExportedWidgets>
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches