| Newsgroups |
gmane.comp.gnome.mono.patches |
| Message-ID |
<00000141dadd8565-c91607a1-869e-4df5-9266-f64f7293b10a-000000@email.amazonses.com> |
Branch: refs/heads/ng-assemblybrowser
Home: https://github.com/mono/monodevelop
Compare: https://github.com/mono/monodevelop/commit/1c5c4454fa64
Commit: 1c5c4454fa6483e3dfb0906dcf891934dbc56a08
Author: Mike Krüger <[email protected]> (mkrueger)
Date: 2013-10-21 11:13:28 GMT
URL: https://github.com/mono/monodevelop/commit/1c5c4454fa6483e3dfb0906dcf891934dbc56a08
Switched assembly browser model.
Changed paths:
M main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.addin.xml
M main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.csproj
M main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserHandler.cs
M main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContent.cs
M main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
M main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DisplayBinding.cs
M main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/generated.cs
M main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/gui.stetic
M main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs
Added paths:
A main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserPad.cs
A main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContentWidget.cs
Removed paths:
D main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.cs
Modified: main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.addin.xml
===================================================================
@@ -26,4 +26,14 @@
<CommandItem id = "MonoDevelop.AssemblyBrowser.ShowAssemblyBrowser" insertbefore="ViewSeparator3" />
</Extension>
+ <Extension path = "/MonoDevelop/Ide/Pads">
+ <Pad id = "MonoDevelop.AssemblyBrowser.AssemblyBrowserPad"
+ icon = "md-class"
+ _label = "Assemblies"
+ class = "MonoDevelop.AssemblyBrowser.AssemblyBrowserPad"
+ defaultPlacement = "Left"
+ defaultStatus="AutoHide"
+ defaultLayout="*"/>
+ </Extension>
+
</ExtensionModel>
Modified: main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.csproj
===================================================================
@@ -24,8 +24,8 @@
</Execution>
<AssemblyOriginatorKeyFile>.</AssemblyOriginatorKeyFile>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
- <GenerateDocumentation>true</GenerateDocumentation>
<NoWarn>1591;1573</NoWarn>
+ <DocumentationFile>..\..\..\build\AddIns\DisplayBindings\AssemblyBrowser\MonoDevelop.AssemblyBrowser.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -39,8 +39,8 @@
</Execution>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<DebugSymbols>true</DebugSymbols>
- <GenerateDocumentation>true</GenerateDocumentation>
<NoWarn>1591;1573</NoWarn>
+ <DocumentationFile>..\..\..\build\AddIns\DisplayBindings\AssemblyBrowser\MonoDevelop.AssemblyBrowser.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="Mono.Posix" />
@@ -125,6 +125,10 @@
<Name>ICSharpCode.NRefactory.Cecil</Name>
<Private>False</Private>
</ProjectReference>
+ <ProjectReference Include="..\..\..\external\xwt\Xwt\Xwt.csproj">
+ <Project>{92494904-35FA-4DC9-BDE9-3A3E87AC49D3}</Project>
+ <Name>Xwt</Name>
+ </ProjectReference>
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs" />
@@ -135,7 +139,6 @@
<Compile Include="MonoDevelop.AssemblyBrowser\BaseTypeFolder.cs" />
<Compile Include="MonoDevelop.AssemblyBrowser\IAssemblyBrowserNodeBuilder.cs" />
<Compile Include="gtk-gui\generated.cs" />
- <Compile Include="gtk-gui\MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.cs" />
<Compile Include="MonoDevelop.AssemblyBrowser\DocumentationPanel.cs" />
<Compile Include="MonoDevelop.AssemblyBrowser\ColoredCSharpFormatter.cs" />
<Compile Include="MonoDevelop.AssemblyBrowser\TreeNodes\DomEventNodeBuilder.cs" />
@@ -163,6 +166,8 @@
<Compile Include="XmlDocIdLib\OperatorType.cs" />
<Compile Include="XmlDocIdLib\XmlDocIdGenerator.cs" />
<Compile Include="AddinInfo.cs" />
+ <Compile Include="MonoDevelop.AssemblyBrowser\AssemblyBrowserPad.cs" />
+ <Compile Include="MonoDevelop.AssemblyBrowser\AssemblyBrowserViewContentWidget.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="gtk-gui\gui.stetic">
Modified: main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserHandler.cs
===================================================================
@@ -42,7 +42,7 @@ protected override void Run ()
}
var binding = DisplayBindingService.GetBindings<AssemblyBrowserDisplayBinding> ().FirstOrDefault ();
var assemblyBrowserView = binding != null ? binding.GetViewContent () : new AssemblyBrowserViewContent ();
- assemblyBrowserView.FillWidget ();
+ // assemblyBrowserView.FillWidget ();
IdeApp.Workbench.OpenDocument (assemblyBrowserView, true);
}
Added: main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserPad.cs
===================================================================
@@ -0,0 +1,75 @@
+//
+// AssemblyBrowserPad.cs
+//
+// Author:
+// Mike Krüger <[email protected]>
+//
+// Copyright (c) 2013 Xamarin Inc. (http://xamarin.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;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Text;
+using System.Xml;
+using Gtk;
+
+using Mono.Cecil;
+using MonoDevelop.Components.Commands;
+using MonoDevelop.Core;
+using MonoDevelop.Ide;
+using MonoDevelop.Ide.Commands;
+using MonoDevelop.Ide.Gui.Components;
+using System.Linq;
+using Mono.TextEditor;
+using MonoDevelop.Ide.TypeSystem;
+using ICSharpCode.NRefactory.Documentation;
+using ICSharpCode.NRefactory.TypeSystem;
+using MonoDevelop.Projects;
+using ICSharpCode.NRefactory.TypeSystem.Implementation;
+using Mono.TextEditor.Theatrics;
+using MonoDevelop.SourceEditor;
+using XmlDocIdLib;
+using MonoDevelop.Ide.Gui;
+using MonoDevelop.Components;
+using System.Threading.Tasks;
+using System.Threading;
+
+namespace MonoDevelop.AssemblyBrowser
+{
+ class AssemblyBrowserPad : AbstractPadContent
+ {
+ readonly AssemblyBrowserWidget widget = new AssemblyBrowserWidget ();
+ public AssemblyBrowserWidget AssemblyBrowserWidget {
+ get {
+ return widget;
+ }
+ }
+ #region implemented abstract members of AbstractPadContent
+ public override Gtk.Widget Control {
+ get {
+ return widget;
+ // return (Gtk.Widget)Toolkit.CurrentEngine.GetNativeWidget (widget);
+ }
+ }
+ #endregion
+ }
+}
+
Modified: main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContent.cs
===================================================================
@@ -38,19 +38,10 @@
namespace MonoDevelop.AssemblyBrowser
{
- class AssemblyBrowserViewContent : AbstractViewContent, IOpenNamedElementHandler, INavigable
+ class AssemblyBrowserViewContent : AbstractViewContent, INavigable
{
readonly static string[] defaultAssemblies = new string[] { "mscorlib", "System", "System.Core", "System.Xml" };
- AssemblyBrowserWidget widget;
-
- protected override void OnWorkbenchWindowChanged (EventArgs e)
- {
- base.OnWorkbenchWindowChanged (e);
- if (WorkbenchWindow != null) {
- var toolbar = WorkbenchWindow.GetToolbar (this);
- widget.SetToolbar (toolbar);
- }
- }
+ AssemblyBrowserViewContentWidget widget;
public override Gtk.Widget Control {
get {
@@ -58,7 +49,7 @@ protected override void OnWorkbenchWindowChanged (EventArgs e)
}
}
- internal AssemblyBrowserWidget Widget {
+ internal AssemblyBrowserViewContentWidget Widget {
get {
return widget;
}
@@ -67,14 +58,12 @@ protected override void OnWorkbenchWindowChanged (EventArgs e)
public AssemblyBrowserViewContent()
{
ContentName = GettextCatalog.GetString ("Assembly Browser");
- widget = new AssemblyBrowserWidget ();
+ widget = new AssemblyBrowserViewContentWidget ();
IsDisposed = false;
}
public override void Load (string fileName)
{
- ContentName = GettextCatalog.GetString ("Assembly Browser");
- widget.AddReferenceByFileName (fileName);
}
public override bool IsFile {
@@ -105,24 +94,7 @@ public NavigationPoint BuildNavigationPoint ()
#endregion
- #region IUrlHandler implementation
-
- public void Open (INamedElement element)
- {
- var member = element as IUnresolvedEntity;
- if (member == null) {
- var entity = element as IMember;
- if (entity != null)
- member = entity.UnresolvedMember;
- }
- if (member == null)
- return;
- var url = AssemblyBrowserWidget.GetIdString (member);
- widget.Open (url);
- }
-
- #endregion
-
+ /*
[MonoDevelop.Components.Commands.CommandHandler(MonoDevelop.Refactoring.RefactoryCommands.FindReferences)]
public void FindReferences ()
{
@@ -161,7 +133,7 @@ public void FillWidget ()
}
}
}
- }
+ }*/
}
class AssemblyBrowserNavigationPoint : NavigationPoint
@@ -177,7 +149,7 @@ Document DoShow ()
var binding = DisplayBindingService.GetBindings<AssemblyBrowserDisplayBinding> ().FirstOrDefault ();
var assemblyBrowserView = binding != null ? binding.GetViewContent () : new AssemblyBrowserViewContent ();
- assemblyBrowserView.FillWidget ();
+ // assemblyBrowserView.FillWidget ();
return Ide.IdeApp.Workbench.OpenDocument (assemblyBrowserView, true);
}
Added: main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserViewContentWidget.cs
===================================================================
@@ -0,0 +1,240 @@
+//
+// AssemblyBrowserViewContentWidget.cs
+//
+// Author:
+// Mike Krüger <[email protected]>
+//
+// Copyright (c) 2013 Xamarin Inc. (http://xamarin.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;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Text;
+using System.Xml;
+using Gtk;
+
+using Mono.Cecil;
+using MonoDevelop.Components.Commands;
+using MonoDevelop.Core;
+using MonoDevelop.Ide;
+using MonoDevelop.Ide.Commands;
+using MonoDevelop.Ide.Gui.Components;
+using System.Linq;
+using Mono.TextEditor;
+using MonoDevelop.Ide.TypeSystem;
+using ICSharpCode.NRefactory.Documentation;
+using ICSharpCode.NRefactory.TypeSystem;
+using MonoDevelop.Projects;
+using ICSharpCode.NRefactory.TypeSystem.Implementation;
+using Mono.TextEditor.Theatrics;
+using MonoDevelop.SourceEditor;
+using XmlDocIdLib;
+using MonoDevelop.Ide.Gui;
+using MonoDevelop.Components;
+using System.Threading.Tasks;
+using System.Threading;
+
+namespace MonoDevelop.AssemblyBrowser
+{
+ public class AssemblyBrowserViewContentWidget : Gtk.VBox
+ {
+ public bool PublicApiOnly {
+ get {
+ return true;
+ }
+ }
+
+ readonly Ambience ambience = AmbienceService.GetAmbience ("text/x-csharp");
+ public Ambience Ambience {
+ get { return ambience; }
+ }
+
+ readonly TextEditor inspectEditor;
+
+ public class AssemblyBrowserTreeView : ExtensibleTreeView
+ {
+ bool publicApiOnly = true;
+
+ public bool PublicApiOnly {
+ get {
+ return publicApiOnly;
+ }
+ set {
+ if (publicApiOnly == value)
+ return;
+ publicApiOnly = value;
+ var root = GetRootNode ();
+ if (root != null)
+ RefreshNode (root);
+ }
+ }
+
+ public AssemblyBrowserTreeView (NodeBuilder[] builders, TreePadOption[] options) : base (builders, options)
+ {
+ }
+ }
+
+ public AssemblyBrowserViewContentWidget ()
+ {
+ var options = new MonoDevelop.Ide.Gui.CommonTextEditorOptions () {
+ ShowFoldMargin = false,
+ ShowIconMargin = false,
+ ShowLineNumberMargin = false,
+ HighlightCaretLine = true,
+ };
+ inspectEditor = new TextEditor (new TextDocument (), options);
+ inspectEditor.ButtonPressEvent += HandleInspectEditorButtonPressEvent;
+
+ this.inspectEditor.Document.ReadOnly = true;
+// this.inspectEditor.Document.SyntaxMode = new Mono.TextEditor.Highlighting.MarkupSyntaxMode ();
+ this.inspectEditor.TextViewMargin.GetLink = delegate(Mono.TextEditor.MarginMouseEventArgs arg) {
+ var loc = inspectEditor.PointToLocation (arg.X, arg.Y);
+ int offset = inspectEditor.LocationToOffset (loc);
+ var referencedSegment = ReferencedSegments != null ? ReferencedSegments.FirstOrDefault (seg => seg.Segment.Contains (offset)) : null;
+ if (referencedSegment == null)
+ return null;
+ if (referencedSegment.Reference is TypeDefinition)
+ return new XmlDocIdGenerator ().GetXmlDocPath ((TypeDefinition)referencedSegment.Reference);
+
+ if (referencedSegment.Reference is MethodDefinition)
+ return new XmlDocIdGenerator ().GetXmlDocPath ((MethodDefinition)referencedSegment.Reference);
+
+ if (referencedSegment.Reference is PropertyDefinition)
+ return new XmlDocIdGenerator ().GetXmlDocPath ((PropertyDefinition)referencedSegment.Reference);
+
+ if (referencedSegment.Reference is FieldDefinition)
+ return new XmlDocIdGenerator ().GetXmlDocPath ((FieldDefinition)referencedSegment.Reference);
+
+ if (referencedSegment.Reference is EventDefinition)
+ return new XmlDocIdGenerator ().GetXmlDocPath ((EventDefinition)referencedSegment.Reference);
+
+ if (referencedSegment.Reference is FieldDefinition)
+ return new XmlDocIdGenerator ().GetXmlDocPath ((FieldDefinition)referencedSegment.Reference);
+
+ if (referencedSegment.Reference is TypeReference) {
+ return new XmlDocIdGenerator ().GetXmlDocPath ((TypeReference)referencedSegment.Reference);
+ }
+ return referencedSegment.Reference.ToString ();
+ };
+ this.inspectEditor.LinkRequest += InspectEditorhandleLinkRequest;
+
+ var documentationScrolledWindow = new CompactScrolledWindow ();
+ documentationScrolledWindow.Child = inspectEditor;
+ this.PackStart (documentationScrolledWindow, true, true, 0);
+
+ this.ShowAll ();
+ }
+
+ [CommandHandler (EditCommands.Copy)]
+ protected void OnCopyCommand ()
+ {
+ inspectEditor.RunAction (Mono.TextEditor.ClipboardActions.Copy);
+ }
+
+ [CommandHandler (EditCommands.SelectAll)]
+ protected void OnSelectAllCommand ()
+ {
+ inspectEditor.RunAction (Mono.TextEditor.SelectionActions.SelectAll);
+ }
+
+ void HandleInspectEditorButtonPressEvent (object o, ButtonPressEventArgs args)
+ {
+ if (args.Event.Button != 3)
+ return;
+ var menuSet = new CommandEntrySet ();
+ menuSet.AddItem (EditCommands.SelectAll);
+ menuSet.AddItem (EditCommands.Copy);
+ IdeApp.CommandService.ShowContextMenu (menuSet, this);
+ }
+
+ void InspectEditorhandleLinkRequest (object sender, Mono.TextEditor.LinkEventArgs args)
+ {
+ /*
+ var loader = (AssemblyLoader)this.TreeView.GetSelectedNode ().GetParentDataItem (typeof(AssemblyLoader), true);
+
+ if (args.Button == 2 || (args.Button == 1 && (args.ModifierState & Gdk.ModifierType.ShiftMask) == Gdk.ModifierType.ShiftMask)) {
+ AssemblyBrowserViewContent assemblyBrowserView = new AssemblyBrowserViewContent ();
+ foreach (var cu in definitions) {
+ assemblyBrowserView.Load (cu.UnresolvedAssembly.AssemblyName);
+ }
+ IdeApp.Workbench.OpenDocument (assemblyBrowserView, true);
+ ((AssemblyBrowserWidget)assemblyBrowserView.Control).Open (args.Link);
+ } else {
+ this.Open (args.Link, loader);
+ }*/
+ }
+
+ List<ReferenceSegment> ReferencedSegments = new List<ReferenceSegment>();
+ List<UnderlineMarker> underlineMarkers = new List<UnderlineMarker> ();
+
+ public void ClearReferenceSegment ()
+ {
+ ReferencedSegments = null;
+ underlineMarkers.ForEach (m => inspectEditor.Document.RemoveMarker (m));
+ underlineMarkers.Clear ();
+ }
+
+ internal void SetReferencedSegments (List<ReferenceSegment> refs)
+ {
+ ReferencedSegments = refs;
+ if (ReferencedSegments == null)
+ return;
+ foreach (var seg in refs) {
+ DocumentLine line = inspectEditor.GetLineByOffset (seg.Offset);
+ if (line == null)
+ continue;
+ // FIXME: ILSpy sometimes gives reference segments for punctuation. See http://bugzilla.xamarin.com/show_bug.cgi?id=2918
+ string text = inspectEditor.GetTextAt (seg);
+ if (text != null && text.Length == 1 && !(char.IsLetter (text [0]) || text [0] == '…'))
+ continue;
+ var marker = new UnderlineMarker (new Cairo.Color (0, 0, 1.0), 1 + seg.Offset - line.Offset, 1 + seg.EndOffset - line.Offset);
+ marker.Wave = false;
+ underlineMarkers.Add (marker);
+ inspectEditor.Document.AddMarker (line, marker);
+ }
+ }
+
+ public void Show (ITreeNavigator nav)
+ {
+ if (nav == null)
+ return;
+ IAssemblyBrowserNodeBuilder builder = nav.TypeNodeBuilder as IAssemblyBrowserNodeBuilder;
+ if (builder == null) {
+ this.inspectEditor.Document.Text = "";
+ return;
+ }
+
+ ClearReferenceSegment ();
+ inspectEditor.Document.ClearFoldSegments ();
+ /*} case 1:
+ inspectEditor.Options.ShowFoldMargin = true;
+ this.inspectEditor.Document.MimeType = "text/x-ilasm";
+ SetReferencedSegments (builder.Disassemble (inspectEditor.GetTextEditorData (), nav));
+ break;*/
+
+ inspectEditor.Options.ShowFoldMargin = true;
+ this.inspectEditor.Document.MimeType = "text/x-csharp";
+ SetReferencedSegments (builder.Decompile (inspectEditor.GetTextEditorData (), nav, PublicApiOnly));
+ this.inspectEditor.QueueDraw ();
+ }
+ }
+}
+
Modified: main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
===================================================================
@@ -56,9 +56,7 @@
namespace MonoDevelop.AssemblyBrowser
{
- [System.ComponentModel.Category("MonoDevelop.AssemblyBrowser")]
- [System.ComponentModel.ToolboxItem(true)]
- partial class AssemblyBrowserWidget : Gtk.Bin
+ class AssemblyBrowserWidget : Gtk.VBox
{
Gtk.Button buttonBack;
Gtk.Button buttonForeward;
@@ -70,7 +68,7 @@ partial class AssemblyBrowserWidget : Gtk.Bin
get;
private set;
}
-
+
public bool PublicApiOnly {
get {
return TreeView.PublicApiOnly;
@@ -81,9 +79,6 @@ partial class AssemblyBrowserWidget : Gtk.Bin
public Ambience Ambience {
get { return ambience; }
}
-
- DocumentationPanel documentationPanel = new DocumentationPanel ();
- readonly TextEditor inspectEditor;
public class AssemblyBrowserTreeView : ExtensibleTreeView
{
@@ -110,13 +105,9 @@ public AssemblyBrowserTreeView (NodeBuilder[] builders, TreePadOption[] options)
public AssemblyBrowserWidget ()
{
- this.Build ();
-
buttonBack = new Gtk.Button (new Gtk.Image (ImageService.GetPixbuf ("md-breadcrumb-prev")));
- buttonBack.Clicked += OnNavigateBackwardActionActivated;
buttonForeward = new Gtk.Button (new Gtk.Image (ImageService.GetPixbuf ("md-breadcrumb-next")));
- buttonForeward.Clicked += OnNavigateForwardActionActivated;
comboboxVisibilty = ComboBox.NewText ();
comboboxVisibilty.InsertText (0, GettextCatalog.GetString ("Only public members"));
@@ -124,7 +115,6 @@ public AssemblyBrowserWidget ()
comboboxVisibilty.Active = 0;
comboboxVisibilty.Changed += delegate {
TreeView.PublicApiOnly = comboboxVisibilty.Active == 0;
- FillInspectLabel ();
};
searchentry1 = new MonoDevelop.Components.SearchEntry ();
@@ -187,64 +177,15 @@ public AssemblyBrowserWidget ()
TreeView.BorderWidth = 1;
TreeView.ShowBorderLine = false;
TreeView.Zoom = 1.0;
- treeViewPlaceholder.Add (TreeView);
-// this.descriptionLabel.ModifyFont (Pango.FontDescription.FromString ("Sans 9"));
-// this.documentationLabel.ModifyFont (Pango.FontDescription.FromString ("Sans 12"));
-// this.documentationLabel.ModifyBg (Gtk.StateType.Normal, new Gdk.Color (255, 255, 225));
-// this.documentationLabel.Wrap = true;
-
+ this.PackStart (TreeView, true, true, 0);
+
var options = new MonoDevelop.Ide.Gui.CommonTextEditorOptions () {
ShowFoldMargin = false,
ShowIconMargin = false,
ShowLineNumberMargin = false,
HighlightCaretLine = true,
};
- inspectEditor = new TextEditor (new TextDocument (), options);
- inspectEditor.ButtonPressEvent += HandleInspectEditorButtonPressEvent;
-
- this.inspectEditor.Document.ReadOnly = true;
-// this.inspectEditor.Document.SyntaxMode = new Mono.TextEditor.Highlighting.MarkupSyntaxMode ();
- this.inspectEditor.TextViewMargin.GetLink = delegate(Mono.TextEditor.MarginMouseEventArgs arg) {
- var loc = inspectEditor.PointToLocation (arg.X, arg.Y);
- int offset = inspectEditor.LocationToOffset (loc);
- var referencedSegment = ReferencedSegments != null ? ReferencedSegments.FirstOrDefault (seg => seg.Segment.Contains (offset)) : null;
- if (referencedSegment == null)
- return null;
- if (referencedSegment.Reference is TypeDefinition)
- return new XmlDocIdGenerator ().GetXmlDocPath ((TypeDefinition)referencedSegment.Reference);
-
- if (referencedSegment.Reference is MethodDefinition)
- return new XmlDocIdGenerator ().GetXmlDocPath ((MethodDefinition)referencedSegment.Reference);
-
- if (referencedSegment.Reference is PropertyDefinition)
- return new XmlDocIdGenerator ().GetXmlDocPath ((PropertyDefinition)referencedSegment.Reference);
-
- if (referencedSegment.Reference is FieldDefinition)
- return new XmlDocIdGenerator ().GetXmlDocPath ((FieldDefinition)referencedSegment.Reference);
-
- if (referencedSegment.Reference is EventDefinition)
- return new XmlDocIdGenerator ().GetXmlDocPath ((EventDefinition)referencedSegment.Reference);
-
- if (referencedSegment.Reference is FieldDefinition)
- return new XmlDocIdGenerator ().GetXmlDocPath ((FieldDefinition)referencedSegment.Reference);
-
- if (referencedSegment.Reference is TypeReference) {
- return new XmlDocIdGenerator ().GetXmlDocPath ((TypeReference)referencedSegment.Reference);
- }
- return referencedSegment.Reference.ToString ();
- };
- this.inspectEditor.LinkRequest += InspectEditorhandleLinkRequest;
- documentationScrolledWindow.Add (inspectEditor);
-
- this.hpaned1.ExposeEvent += HPaneExpose;
- hpaned1 = hpaned1.ReplaceWithWidget (new HPanedThin (), true);
- hpaned1.Position = 271;
-
- this.notebook1.SetTabLabel (this.documentationScrolledWindow, new Label (GettextCatalog.GetString ("Documentation")));
- this.notebook1.SetTabLabel (this.searchWidget, new Label (GettextCatalog.GetString ("Search")));
- notebook1.Page = 0;
- //this.searchWidget.Visible = false;
typeListStore = new Gtk.ListStore (typeof(Gdk.Pixbuf), // type image
typeof(string), // name
@@ -260,12 +201,33 @@ public AssemblyBrowserWidget ()
typeof(IMember)
);
CreateColumns ();
-// this.searchEntry.Changed += SearchEntryhandleChanged;
- this.searchTreeview.RowActivated += SearchTreeviewhandleRowActivated;
- this.notebook1.ShowTabs = false;
this.ShowAll ();
}
+ void HandleCursorChanged (object sender, EventArgs e)
+ {
+ var currentItem = TreeView.GetSelectedNode ();
+ if (currentItem == null)
+ return;
+
+ var doc = IdeApp.Workbench.ActiveDocument;
+ var cnt = doc != null ? doc.GetContent<AssemblyBrowserViewContent> () : null;
+ if (cnt == null) {
+ var firstDoc = IdeApp.Workbench.Documents.FirstOrDefault (d => d.GetContent<AssemblyBrowserViewContent> () != null);
+ if (firstDoc != null) {
+ cnt = firstDoc.GetContent<AssemblyBrowserViewContent> ();
+ firstDoc.Select ();
+ }
+ }
+ if (cnt == null) {
+ cnt = new AssemblyBrowserViewContent ();
+ IdeApp.Workbench.OpenDocument (cnt, true);
+ }
+
+ if (cnt != null)
+ cnt.Widget.Show (currentItem);
+ }
+
internal void SetToolbar (DocumentToolbar toolbar)
{
toolbar.Add (buttonBack);
@@ -292,18 +254,6 @@ internal void SetToolbar (DocumentToolbar toolbar)
toolbar.ShowAll ();
}
- [CommandHandler (EditCommands.Copy)]
- protected void OnCopyCommand ()
- {
- inspectEditor.RunAction (Mono.TextEditor.ClipboardActions.Copy);
- }
-
- [CommandHandler (EditCommands.SelectAll)]
- protected void OnSelectAllCommand ()
- {
- inspectEditor.RunAction (Mono.TextEditor.SelectionActions.SelectAll);
- }
-
void HandleInspectEditorButtonPressEvent (object o, ButtonPressEventArgs args)
{
if (args.Event.Button != 3)
@@ -314,19 +264,6 @@ void HandleInspectEditorButtonPressEvent (object o, ButtonPressEventArgs args)
IdeApp.CommandService.ShowContextMenu (menuSet, this);
}
- void SearchTreeviewhandleRowActivated (object o, RowActivatedArgs args)
- {
- TreeIter selectedIter;
- if (searchTreeview.Selection.GetSelected (out selectedIter)) {
- var member = (IUnresolvedEntity)(searchMode != SearchMode.Type ? memberListStore.GetValue (selectedIter, 4) : typeListStore.GetValue (selectedIter, 4));
-
- var nav = SearchMember (member);
- if (nav != null) {
- notebook1.Page = 0;
- }
- }
- }
-
void SearchEntryhandleChanged (object sender, EventArgs e)
{
StartSearch ();
@@ -334,9 +271,7 @@ void SearchEntryhandleChanged (object sender, EventArgs e)
void LanguageComboboxhandleChanged (object sender, EventArgs e)
{
- this.notebook1.Page = 0;
PropertyService.Set ("AssemblyBrowser.InspectLanguage", this.languageCombobox.Active);
- FillInspectLabel ();
}
void InspectEditorhandleLinkRequest (object sender, Mono.TextEditor.LinkEventArgs args)
@@ -584,7 +519,6 @@ ITreeNavigator SearchMember (ITreeNavigator nav, string helpUrl)
bool searchType = helpUrl.StartsWith ("T:", StringComparison.Ordinal);
do {
if (IsMatch (nav, helpUrl, searchType)) {
- inspectEditor.ClearSelection ();
nav.ExpandToNode ();
nav.Selected = nav.Expanded = true;
nav.ScrollToNode ();
@@ -628,49 +562,6 @@ enum SearchMode
void CreateColumns ()
{
- foreach (TreeViewColumn column in searchTreeview.Columns) {
- searchTreeview.RemoveColumn (column);
- }
- TreeViewColumn col;
- Gtk.CellRenderer crp, crt;
- switch (searchMode) {
- case SearchMode.Member:
- case SearchMode.Disassembler:
- case SearchMode.Decompiler:
- col = new TreeViewColumn ();
- col.Title = GettextCatalog.GetString ("Member");
- crp = new Gtk.CellRendererPixbuf ();
- crt = new Gtk.CellRendererText ();
- col.PackStart (crp, false);
- col.PackStart (crt, true);
- col.AddAttribute (crp, "pixbuf", 0);
- col.AddAttribute (crt, "text", 1);
- searchTreeview.AppendColumn (col);
- col.Resizable = true;
- col = searchTreeview.AppendColumn (GettextCatalog.GetString ("Declaring Type"), new Gtk.CellRendererText (), "text", 2);
- col.Resizable = true;
- col = searchTreeview.AppendColumn (GettextCatalog.GetString ("Assembly"), new Gtk.CellRendererText (), "text", 3);
- col.Resizable = true;
- searchTreeview.Model = memberListStore;
- break;
- case SearchMode.Type:
- col = new TreeViewColumn ();
- col.Title = GettextCatalog.GetString ("Type");
- crp = new Gtk.CellRendererPixbuf ();
- crt = new Gtk.CellRendererText ();
- col.PackStart (crp, false);
- col.PackStart (crt, true);
- col.AddAttribute (crp, "pixbuf", 0);
- col.AddAttribute (crt, "text", 1);
- searchTreeview.AppendColumn (col);
- col.Resizable = true;
- col = searchTreeview.AppendColumn (GettextCatalog.GetString ("Namespace"), new Gtk.CellRendererText (), "text", 2);
- col.Resizable = true;
- col = searchTreeview.AppendColumn (GettextCatalog.GetString ("Assembly"), new Gtk.CellRendererText (), "text", 3);
- col.Resizable = true;
- searchTreeview.Model = typeListStore;
- break;
- }
}
System.ComponentModel.BackgroundWorker searchBackgoundWorker = null;
@@ -681,12 +572,10 @@ public void StartSearch ()
searchBackgoundWorker.CancelAsync ();
if (string.IsNullOrEmpty (query)) {
- notebook1.Page = 0;
return;
}
- this.notebook1.Page = 1;
-
+
switch (searchMode) {
case SearchMode.Member:
IdeApp.Workbench.StatusBar.BeginProgress (GettextCatalog.GetString ("Searching member..."));
@@ -1061,72 +950,6 @@ static string TransformDocumentation (XmlNode docNode)
return result.ToString ();
}
- List<ReferenceSegment> ReferencedSegments = new List<ReferenceSegment>();
- List<UnderlineMarker> underlineMarkers = new List<UnderlineMarker> ();
-
- public void ClearReferenceSegment ()
- {
- ReferencedSegments = null;
- underlineMarkers.ForEach (m => inspectEditor.Document.RemoveMarker (m));
- underlineMarkers.Clear ();
- }
-
- public void SetReferencedSegments (List<ReferenceSegment> refs)
- {
- ReferencedSegments = refs;
- if (ReferencedSegments == null)
- return;
- foreach (var seg in refs) {
- DocumentLine line = inspectEditor.GetLineByOffset (seg.Offset);
- if (line == null)
- continue;
- // FIXME: ILSpy sometimes gives reference segments for punctuation. See http://bugzilla.xamarin.com/show_bug.cgi?id=2918
- string text = inspectEditor.GetTextAt (seg);
- if (text != null && text.Length == 1 && !(char.IsLetter (text [0]) || text [0] == '…'))
- continue;
- var marker = new UnderlineMarker (new Cairo.Color (0, 0, 1.0), 1 + seg.Offset - line.Offset, 1 + seg.EndOffset - line.Offset);
- marker.Wave = false;
- underlineMarkers.Add (marker);
- inspectEditor.Document.AddMarker (line, marker);
- }
- }
-
- void FillInspectLabel ()
- {
- ITreeNavigator nav = TreeView.GetSelectedNode ();
- if (nav == null)
- return;
- IAssemblyBrowserNodeBuilder builder = nav.TypeNodeBuilder as IAssemblyBrowserNodeBuilder;
- if (builder == null) {
- this.inspectEditor.Document.Text = "";
- return;
- }
-
- ClearReferenceSegment ();
- inspectEditor.Document.ClearFoldSegments ();
- switch (this.languageCombobox.Active) {
- case 0:
- inspectEditor.Options.ShowFoldMargin = false;
- this.inspectEditor.Document.MimeType = "text/x-csharp";
- this.documentationPanel.Markup = builder.GetDocumentationMarkup (nav);
- break;
- case 1:
- inspectEditor.Options.ShowFoldMargin = true;
- this.inspectEditor.Document.MimeType = "text/x-ilasm";
- SetReferencedSegments (builder.Disassemble (inspectEditor.GetTextEditorData (), nav));
- break;
- case 2:
- inspectEditor.Options.ShowFoldMargin = true;
- this.inspectEditor.Document.MimeType = "text/x-csharp";
- SetReferencedSegments (builder.Decompile (inspectEditor.GetTextEditorData (), nav, PublicApiOnly));
- break;
- default:
- inspectEditor.Options.ShowFoldMargin = false;
- this.inspectEditor.Document.Text = "Invalid combobox value: " + this.languageCombobox.Active;
- break;
- }
- this.inspectEditor.QueueDraw ();
- }
void CreateOutput ()
{
@@ -1160,7 +983,6 @@ void CreateOutput ()
}*/
}
- FillInspectLabel ();
}
/*int oldSize = -1;
@@ -1171,16 +993,7 @@ void VPaneExpose (object sender, Gtk.ExposeEventArgs args)
return;
this.vpaned1.Position = oldSize = size;
}*/
- int oldSize2 = -1;
- void HPaneExpose (object sender, Gtk.ExposeEventArgs args)
- {
- int size = this.Allocation.Width;
- if (size == oldSize2)
- return;
- oldSize2 = size;
- this.hpaned1.Position = Math.Min (350, this.Allocation.Width * 2 / 3);
- }
-
+
public void Open (string url, AssemblyLoader currentAssembly = null)
{
ITreeNavigator nav = SearchMember (url);
@@ -1309,7 +1122,6 @@ void Dispose (ITreeNavigator nav)
protected override void OnDestroyed ()
{
- ClearReferenceSegment ();
if (searchBackgoundWorker != null && searchBackgoundWorker.IsBusy) {
searchBackgoundWorker.CancelAsync ();
searchBackgoundWorker.Dispose ();
@@ -1317,8 +1129,6 @@ protected override void OnDestroyed ()
}
if (this.TreeView != null) {
- // Dispose (TreeView.GetRootNode ());
- TreeView.Tree.CursorChanged -= HandleCursorChanged;
this.TreeView.Clear ();
this.TreeView = null;
}
@@ -1340,37 +1150,12 @@ protected override void OnDestroyed ()
typeListStore.Dispose ();
typeListStore = null;
}
-
- if (documentationPanel != null) {
- documentationPanel.Destroy ();
- documentationPanel = null;
- }
- if (inspectEditor != null) {
- inspectEditor.TextViewMargin.GetLink = null;
- inspectEditor.LinkRequest -= InspectEditorhandleLinkRequest;
- inspectEditor.Destroy ();
- }
-
- if (this.UIManager != null) {
- this.UIManager.Dispose ();
- this.UIManager = null;
- }
+
this.loader = null;
this.languageCombobox.Changed -= LanguageComboboxhandleChanged;
// this.searchInCombobox.Changed -= SearchInComboboxhandleChanged;
// this.searchEntry.Changed -= SearchEntryhandleChanged;
- this.searchTreeview.RowActivated -= SearchTreeviewhandleRowActivated;
- hpaned1.ExposeEvent -= HPaneExpose;
- if (NavigateBackwardAction != null) {
- this.NavigateBackwardAction.Dispose ();
- this.NavigateBackwardAction = null;
- }
-
- if (NavigateForwardAction != null) {
- this.NavigateForwardAction.Dispose ();
- this.NavigateForwardAction = null;
- }
base.OnDestroyed ();
}
@@ -1413,7 +1198,7 @@ public AssemblyLoader AddReferenceByAssemblyName (string assemblyFullName, bool
return AddReferenceByFileName (assemblyFile, selectReference);
}
-
+
public AssemblyLoader AddReferenceByFileName (string fileName, bool selectReference = false)
{
var result = definitions.FirstOrDefault (d => d.FileName == fileName);
@@ -1454,132 +1239,6 @@ public void AddProject (Project project, bool selectReference = false)
}
builder.Selected = builder.Expanded = selectReference;
}
-
- [CommandHandler (SearchCommands.FindNext)]
- public void FindNext ()
- {
- SearchAndReplaceWidget.FindNext (this.inspectEditor);
- }
-
- [CommandHandler (SearchCommands.FindPrevious)]
- public void FindPrevious ()
- {
- SearchAndReplaceWidget.FindPrevious (this.inspectEditor);
- }
-
- [CommandHandler (SearchCommands.Find)]
- public void ShowSearchWidget ()
- {
- if (searchAndReplaceWidget == null) {
- popupWidgetFrame = new MonoDevelop.Components.RoundedFrame ();
- //searchAndReplaceWidgetFrame.SetFillColor (MonoDevelop.Components.CairoExtensions.GdkColorToCairoColor (widget.TextEditor.ColorStyle.Default.BackgroundColor));
- popupWidgetFrame.SetFillColor (MonoDevelop.Components.CairoExtensions.GdkColorToCairoColor (Style.Background (StateType.Normal)));
- popupWidgetFrame.Show ();
-
- popupWidgetFrame.Child = searchAndReplaceWidget = new SearchAndReplaceWidget (inspectEditor, popupWidgetFrame);
- searchAndReplaceWidget.Destroyed += (sender, e) => {
- DestroyFrames ();
- if (inspectEditor.IsRealized)
- inspectEditor.GrabFocus ();
- };
- searchAndReplaceWidget.UpdateSearchPattern ();
- inspectEditor.AddAnimatedWidget (popupWidgetFrame, 300, Mono.TextEditor.Theatrics.Easing.ExponentialInOut, Blocking.Downstage, inspectEditor.Allocation.Width - 400, -searchAndReplaceWidget.Allocation.Height);
- searchAndReplaceWidget.IsReplaceMode = false;
- }
-
- searchAndReplaceWidget.Focus ();
- }
-
- MonoDevelop.Components.RoundedFrame popupWidgetFrame;
-
- GotoLineNumberWidget gotoLineNumberWidget;
- SearchAndReplaceWidget searchAndReplaceWidget;
- void DestroyFrames ()
- {
- if (popupWidgetFrame != null) {
- popupWidgetFrame.Destroy ();
- popupWidgetFrame = null;
- gotoLineNumberWidget = null;
- searchAndReplaceWidget = null;
- }
- }
-
- [CommandHandler (SearchCommands.GotoLineNumber)]
- public void ShowGotoLineNumberWidget ()
- {
- if (gotoLineNumberWidget == null) {
- DestroyFrames ();
- popupWidgetFrame = new MonoDevelop.Components.RoundedFrame ();
- //searchAndReplaceWidgetFrame.SetFillColor (MonoDevelop.Components.CairoExtensions.GdkColorToCairoColor (widget.TextEditor.ColorStyle.Default.BackgroundColor));
- popupWidgetFrame.SetFillColor (MonoDevelop.Components.CairoExtensions.GdkColorToCairoColor (Style.Background (StateType.Normal)));
- popupWidgetFrame.Show ();
-
- popupWidgetFrame.Child = gotoLineNumberWidget = new GotoLineNumberWidget (inspectEditor, popupWidgetFrame);
- gotoLineNumberWidget.Destroyed += (sender, e) => {
- DestroyFrames ();
- if (inspectEditor.IsRealized)
- inspectEditor.GrabFocus ();
- };
- inspectEditor.AddAnimatedWidget (popupWidgetFrame, 300, Mono.TextEditor.Theatrics.Easing.ExponentialInOut, Blocking.Downstage, inspectEditor.Allocation.Width - 400, -gotoLineNumberWidget.Allocation.Height);
- }
-
- gotoLineNumberWidget.Focus ();
- }
-
-
- #region NavigationHistory
- Stack<ITreeNavigator> navigationBackwardHistory = new Stack<ITreeNavigator> ();
- Stack<ITreeNavigator> navigationForwardHistory = new Stack<ITreeNavigator> ();
- ITreeNavigator currentItem = null;
- bool inNavigationOperation = false;
- void HandleCursorChanged (object sender, EventArgs e)
- {
- if (!inNavigationOperation) {
- if (currentItem != null)
- navigationBackwardHistory.Push (currentItem);
- currentItem = TreeView.GetSelectedNode ();
- ActiveMember = currentItem.DataItem as IEntity;
- navigationForwardHistory.Clear ();
- }
- notebook1.Page = 0;
- UpdateNavigationActions ();
- CreateOutput ();
- }
-
- void UpdateNavigationActions ()
- {
- if (buttonBack != null) {
- buttonBack.Sensitive = navigationBackwardHistory.Count != 0;
- buttonForeward.Sensitive = navigationForwardHistory.Count != 0;
- }
- }
-
- protected virtual void OnNavigateBackwardActionActivated (object sender, System.EventArgs e)
- {
- if (navigationBackwardHistory.Count == 0)
- return;
- inNavigationOperation = true;
- ITreeNavigator item = navigationBackwardHistory.Pop ();
- item.Selected = true;
- navigationForwardHistory.Push (currentItem);
- currentItem = item;
- inNavigationOperation = false;
- UpdateNavigationActions ();
- }
-
- protected virtual void OnNavigateForwardActionActivated (object sender, System.EventArgs e)
- {
- if (navigationForwardHistory.Count == 0)
- return;
- inNavigationOperation = true;
- ITreeNavigator item = navigationForwardHistory.Pop ();
- item.Selected = true;
- navigationBackwardHistory.Push (currentItem);
- currentItem = item;
- inNavigationOperation = false;
- UpdateNavigationActions ();
- }
- #endregion
}
}
Modified: main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DisplayBinding.cs
===================================================================
@@ -32,6 +32,7 @@
using MonoDevelop.Ide.Gui;
using MonoDevelop.Core;
using MonoDevelop.Projects;
+using MonoDevelop.Ide;
namespace MonoDevelop.AssemblyBrowser
{
@@ -73,7 +74,12 @@ public bool CanHandle (FilePath fileName, string mimeType, Project ownerProject)
public IViewContent CreateContent (FilePath fileName, string mimeType, Project ownerProject)
{
- return GetViewContent ();
+ var abp = IdeApp.Workbench.GetPad<AssemblyBrowserPad> ();
+ abp.BringToFront ();
+ var pad = abp.Content as AssemblyBrowserPad;
+ pad.AssemblyBrowserWidget.AddReferenceByAssemblyName (fileName);
+ return null;
+ // return GetViewContent ();
}
}
}
\ No newline at end of file
Removed: main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.cs
===================================================================
@@ -1,103 +0,0 @@
-
-// This file has been generated by the GUI designer. Do not modify.
-namespace MonoDevelop.AssemblyBrowser
-{
- internal partial class AssemblyBrowserWidget
- {
- private global::Gtk.UIManager UIManager;
- private global::Gtk.Action NavigateBackwardAction;
- private global::Gtk.Action NavigateForwardAction;
- private global::Gtk.VBox vbox1;
- private global::Gtk.HPaned hpaned1;
- private global::Gtk.Alignment treeViewPlaceholder;
- private global::Gtk.VBox vbox3;
- private global::Gtk.Notebook notebook1;
- private global::MonoDevelop.Components.CompactScrolledWindow documentationScrolledWindow;
- private global::Gtk.VBox searchWidget;
- private global::Gtk.ScrolledWindow scrolledwindow1;
- private global::Gtk.TreeView searchTreeview;
-
- protected virtual void Build ()
- {
- global::Stetic.Gui.Initialize (this);
- // Widget MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget
- Stetic.BinContainer w1 = global::Stetic.BinContainer.Attach (this);
- this.UIManager = new global::Gtk.UIManager ();
- global::Gtk.ActionGroup w2 = new global::Gtk.ActionGroup ("Default");
- this.NavigateBackwardAction = new global::Gtk.Action ("NavigateBackwardAction", global::Mono.Unix.Catalog.GetString ("Navigate backward"), null, "gtk-go-back");
- this.NavigateBackwardAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Navigate backward");
- w2.Add (this.NavigateBackwardAction, null);
- this.NavigateForwardAction = new global::Gtk.Action ("NavigateForwardAction", global::Mono.Unix.Catalog.GetString ("Navigate forward"), null, "gtk-go-forward");
- this.NavigateForwardAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Navigate forward");
- w2.Add (this.NavigateForwardAction, null);
- this.UIManager.InsertActionGroup (w2, 0);
- this.Name = "MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget";
- // Container child MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.Gtk.Container+ContainerChild
- this.vbox1 = new global::Gtk.VBox ();
- this.vbox1.Name = "vbox1";
- this.vbox1.Spacing = 2;
- // Container child vbox1.Gtk.Box+BoxChild
- this.hpaned1 = new global::Gtk.HPaned ();
- this.hpaned1.CanFocus = true;
- this.hpaned1.Name = "hpaned1";
- this.hpaned1.Position = 271;
- // Container child hpaned1.Gtk.Paned+PanedChild
- this.treeViewPlaceholder = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F);
- this.treeViewPlaceholder.Name = "treeViewPlaceholder";
- this.hpaned1.Add (this.treeViewPlaceholder);
- global::Gtk.Paned.PanedChild w3 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 [this.treeViewPlaceholder]));
- w3.Resize = false;
- // Container child hpaned1.Gtk.Paned+PanedChild
- this.vbox3 = new global::Gtk.VBox ();
- this.vbox3.Name = "vbox3";
- this.vbox3.Spacing = 6;
- // Container child vbox3.Gtk.Box+BoxChild
- this.notebook1 = new global::Gtk.Notebook ();
- this.notebook1.CanFocus = true;
- this.notebook1.Name = "notebook1";
- this.notebook1.CurrentPage = 0;
- this.notebook1.ShowBorder = false;
- // Container child notebook1.Gtk.Notebook+NotebookChild
- this.documentationScrolledWindow = new global::MonoDevelop.Components.CompactScrolledWindow ();
- this.documentationScrolledWindow.CanFocus = true;
- this.documentationScrolledWindow.Name = "documentationScrolledWindow";
- this.documentationScrolledWindow.ShowBorderLine = false;
- this.notebook1.Add (this.documentationScrolledWindow);
- // Container child notebook1.Gtk.Notebook+NotebookChild
- this.searchWidget = new global::Gtk.VBox ();
- this.searchWidget.Name = "searchWidget";
- this.searchWidget.Spacing = 6;
- // Container child searchWidget.Gtk.Box+BoxChild
- this.scrolledwindow1 = new global::Gtk.ScrolledWindow ();
- this.scrolledwindow1.CanFocus = true;
- this.scrolledwindow1.Name = "scrolledwindow1";
- this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1));
- // Container child scrolledwindow1.Gtk.Container+ContainerChild
- this.searchTreeview = new global::Gtk.TreeView ();
- this.searchTreeview.CanFocus = true;
- this.searchTreeview.Name = "searchTreeview";
- this.scrolledwindow1.Add (this.searchTreeview);
- this.searchWidget.Add (this.scrolledwindow1);
- global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.searchWidget [this.scrolledwindow1]));
- w6.Position = 0;
- this.notebook1.Add (this.searchWidget);
- global::Gtk.Notebook.NotebookChild w7 = ((global::Gtk.Notebook.NotebookChild)(this.notebook1 [this.searchWidget]));
- w7.Position = 1;
- this.vbox3.Add (this.notebook1);
- global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.notebook1]));
- w8.Position = 0;
- this.hpaned1.Add (this.vbox3);
- this.vbox1.Add (this.hpaned1);
- global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hpaned1]));
- w10.Position = 0;
- this.Add (this.vbox1);
- if ((this.Child != null)) {
- this.Child.ShowAll ();
- }
- w1.SetUiManager (UIManager);
- this.Hide ();
- this.NavigateBackwardAction.Activated += new global::System.EventHandler (this.OnNavigateBackwardActionActivated);
- this.NavigateForwardAction.Activated += new global::System.EventHandler (this.OnNavigateForwardActionActivated);
- }
- }
-}
Modified: main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/generated.cs
===================================================================
@@ -14,58 +14,6 @@ internal static void Initialize (Gtk.Widget iconRenderer)
}
}
- internal class BinContainer
- {
- private Gtk.Widget child;
- private Gtk.UIManager uimanager;
-
- public static BinContainer Attach (Gtk.Bin bin)
- {
- BinContainer bc = new BinContainer ();
- bin.SizeRequested += new Gtk.SizeRequestedHandler (bc.OnSizeRequested);
- bin.SizeAllocated += new Gtk.SizeAllocatedHandler (bc.OnSizeAllocated);
- bin.Added += new Gtk.AddedHandler (bc.OnAdded);
- return bc;
- }
-
- private void OnSizeRequested (object sender, Gtk.SizeRequestedArgs args)
- {
- if ((this.child != null)) {
- args.Requisition = this.child.SizeRequest ();
- }
- }
-
- private void OnSizeAllocated (object sender, Gtk.SizeAllocatedArgs args)
- {
- if ((this.child != null)) {
- this.child.Allocation = args.Allocation;
- }
- }
-
- private void OnAdded (object sender, Gtk.AddedArgs args)
- {
- this.child = args.Widget;
- }
-
- public void SetUiManager (Gtk.UIManager uim)
- {
- this.uimanager = uim;
- this.child.Realized += new System.EventHandler (this.OnRealized);
- }
-
- private void OnRealized (object sender, System.EventArgs args)
- {
- if ((this.uimanager != null)) {
- Gtk.Widget w;
- w = this.child.Toplevel;
- if (((w != null) && typeof(Gtk.Window).IsInstanceOfType (w))) {
- ((Gtk.Window)(w)).AddAccelGroup (this.uimanager.AccelGroup);
- this.uimanager = null;
- }
- }
- }
- }
-
internal class ActionGroups
{
public static Gtk.ActionGroup GetActionGroup (System.Type type)
Modified: main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/gui.stetic
===================================================================
@@ -12,105 +12,4 @@
<widget-library name="../../../../build/AddIns/DisplayBindings/SourceEditor/MonoDevelop.SourceEditor2.dll" />
<widget-library name="../../../../build/AddIns/DisplayBindings/AssemblyBrowser/MonoDevelop.AssemblyBrowser.dll" internal="true" />
</import>
- <widget class="Gtk.Bin" id="MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget" design-size="702 482">
- <action-group name="Default">
- <action id="NavigateBackwardAction">
- <property name="Type">Action</property>
- <property name="Label" translatable="yes">Navigate backward</property>
- <property name="ShortLabel" translatable="yes">Navigate backward</property>
- <property name="StockId">gtk-go-back</property>
- <signal name="Activated" handler="OnNavigateBackwardActionActivated" />
- </action>
- <action id="NavigateForwardAction">
- <property name="Type">Action</property>
- <property name="Label" translatable="yes">Navigate forward</property>
- <property name="ShortLabel" translatable="yes">Navigate forward</property>
- <property name="StockId">gtk-go-forward</property>
- <signal name="Activated" handler="OnNavigateForwardActionActivated" />
- </action>
- </action-group>
- <property name="MemberName" />
- <property name="Visible">False</property>
- <property name="GeneratePublic">False</property>
- <child>
- <widget class="Gtk.VBox" id="vbox1">
- <property name="MemberName" />
- <property name="Spacing">2</property>
- <child>
- <widget class="Gtk.HPaned" id="hpaned1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Position">271</property>
- <child>
- <widget class="Gtk.Alignment" id="treeViewPlaceholder">
- <property name="MemberName" />
- <child>
- <placeholder />
- </child>
- </widget>
- <packing>
- <property name="Resize">False</property>
- </packing>
- </child>
- <child>
- <widget class="Gtk.VBox" id="vbox3">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.Notebook" id="notebook1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="CurrentPage">0</property>
- <property name="ShowBorder">False</property>
- <child>
- <widget class="MonoDevelop.Components.CompactScrolledWindow" id="documentationScrolledWindow">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShowBorderLine">False</property>
- </widget>
- </child>
- <child>
- <widget class="Gtk.VBox" id="searchWidget">
- <property name="MemberName" />
- <property name="Spacing">6</property>
- <child>
- <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShadowType">In</property>
- <child>
- <widget class="Gtk.TreeView" id="searchTreeview">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="ShowScrollbars">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="Position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="Position">0</property>
- <property name="AutoSize">True</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
</stetic-interface>
\ No newline at end of file
Modified: main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs
===================================================================
@@ -1260,7 +1260,7 @@ public void Invoke (string fileName)
monitor.ReportError (GettextCatalog.GetString ("The file '{0}' could not be opened.", fileName), null);
}
if (newContent == null) {
- monitor.ReportError (GettextCatalog.GetString ("The file '{0}' could not be opened.", fileName), null);
+ // monitor.ReportError (GettextCatalog.GetString ("The file '{0}' could not be opened.", fileName), null);
return;
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches