/// <summary> /// Constructor that calls the Microsoft.VisualStudio.Shell.WindowPane constructor then /// our initialization functions. /// </summary> /// <param name="package">Our Package instance.</param> public EtoPreviewPane(EtoAddinPackage package, string fileName, IVsTextLines textBuffer, string mainAssembly, IEnumerable <string> references, CodeEditorHost codeEditor) : base(package) { this.editor = codeEditor; this.package = package; this.textBuffer = textBuffer; FileName = fileName; editorControl = new Panel(); editorControl.Content = editor.wpfElement.ToEto(); previewSplitter = new PreviewEditorViewSplitter(editorControl, mainAssembly, references, () => textBuffer?.GetText()); previewSplitter.GotFocus += (sender, e) => { WpfTextView?.VisualElement?.Focus(); }; preview = previewSplitter.Preview; var content = previewSplitter.ToNative(true); if (!preview.SetBuilder(fileName)) { throw new InvalidOperationException(string.Format("Could not find builder for file {0}", fileName)); } Content = content; }
protected override void Dispose(bool disposing) { try { if (disposing) { if (preview != null) { preview.Dispose(); preview = null; } RegisterIndependentView(false); if (editorControl != null) { editorControl.Dispose(); editorControl = null; } GC.SuppressFinalize(this); } } finally { base.Dispose(disposing); } }
public EditorView(ViewContent content) { try { this.content = content; var editorWidget = content.Control.GetNativeWidget <Gtk.Widget> (); editorWidget.ShowAll(); MonoDevelop.Components.Control previewNative; if (Platform.Instance.IsMac) { var editor = new GtkEmbed2(editorWidget); var editorEto = editor.ToEto(); preview = new PreviewEditorView(editorEto, null, null, () => content?.WorkbenchWindow?.Document?.Editor?.Text); var nspreview = XamMac2Helpers.ToNative(preview, true); var nsviewContainer = new NSViewContainer2(nspreview); previewNative = nsviewContainer; } else { preview = new PreviewEditorView(editorWidget.ToEto(), null, null, () => content?.WorkbenchWindow?.Document?.Editor?.Text); previewNative = Gtk2Helpers.ToNative(preview, true); } var commandRouterContainer = new CommandRouterContainer(previewNative, content, true); commandRouterContainer.ShowAll(); control = commandRouterContainer; content.DirtyChanged += content_DirtyChanged; IdeApp.Workbench.ActiveDocumentChanged += Workbench_ActiveDocumentChanged; ContentName = content.ContentName; } catch (Exception ex) { Debug.WriteLine($"{ex}"); } }
public EditorView(IViewContent content) { this.content = content; preview = new PreviewEditorView(content.Control.ToEto(), () => content?.WorkbenchWindow?.Document?.Editor?.Text); content.ContentChanged += content_ContentChanged; content.DirtyChanged += content_DirtyChanged; var commandRouterContainer = new CommandRouterContainer(preview.ToNative(true), content, true); commandRouterContainer.Show(); control = commandRouterContainer; IdeApp.Workbench.ActiveDocumentChanged += Workbench_ActiveDocumentChanged; base.ContentName = content.ContentName; }
protected override MonoDevelop.Components.Control GetNativeControl() { var editorWidget = EditorWidget; editorWidget.ShowAll(); var editor = new GtkEmbed2(editorWidget); var editorEto = editor.ToEto(); Preview = new PreviewEditorView(editorEto, null, null, GetEditorText); var nspreview = XamMac2Helpers.ToNative(Preview, true); var nsviewContainer = new NSViewContainer2(nspreview); return(nsviewContainer); }
/// <summary> /// Constructor that calls the Microsoft.VisualStudio.Shell.WindowPane constructor then /// our initialization functions. /// </summary> /// <param name="package">Our Package instance.</param> public EtoPreviewPane(EtoAddinPackage package, string fileName, IVsTextLines textBuffer) : base(package) { this.package = package; this.textBuffer = textBuffer; FileName = fileName; editorControl = new Panel(); preview = new PreviewEditorView(editorControl, () => textBuffer?.GetText()); if (!preview.SetBuilder(fileName)) { throw new InvalidOperationException(string.Format("Could not find builder for file {0}", fileName)); } Content = preview.ToNative(true); }