public SourceEditorWidget (SourceEditorView view) { this.view = view; vbox.SetSizeRequest (32, 32); this.lastActiveEditor = this.textEditor = new MonoDevelop.SourceEditor.ExtensibleTextEditor (view); this.textEditor.TextArea.FocusInEvent += (o, s) => { lastActiveEditor = (ExtensibleTextEditor)((TextArea)o).GetTextEditorData ().Parent; view.FireCompletionContextChanged (); }; this.textEditor.TextArea.FocusOutEvent += delegate { if (this.splittedTextEditor == null || !splittedTextEditor.TextArea.HasFocus) OnLostFocus (); }; mainsw = new DecoratedScrolledWindow (this); mainsw.SetTextEditor (textEditor); vbox.PackStart (mainsw, true, true, 0); textEditorData = textEditor.GetTextEditorData (); ResetFocusChain (); UpdateLineCol (); // this.IsClassBrowserVisible = this.widget.TextEditor.Options.EnableQuickFinder; vbox.BorderWidth = 0; vbox.Spacing = 0; vbox.Focused += delegate { UpdateLineCol (); }; vbox.Destroyed += delegate { isDisposed = true; RemoveErrorUndelinesResetTimerId (); StopParseInfoThread (); KillWidgets (); foreach (var provider in quickTaskProvider.ToArray ()) { RemoveQuickTaskProvider (provider); } this.lastActiveEditor = null; this.splittedTextEditor = null; view = null; parsedDocument = null; // IdeApp.Workbench.StatusBar.ClearCaretState (); if (parseInformationUpdaterWorkerThread != null) { parseInformationUpdaterWorkerThread.Dispose (); parseInformationUpdaterWorkerThread = null; } }; vbox.ShowAll (); parseInformationUpdaterWorkerThread = new BackgroundWorker (); parseInformationUpdaterWorkerThread.WorkerSupportsCancellation = true; parseInformationUpdaterWorkerThread.DoWork += HandleParseInformationUpdaterWorkerThreadDoWork; }
public void Split (bool vSplit) { double vadjustment = this.mainsw.Vadjustment.Value; double hadjustment = this.mainsw.Hadjustment.Value; if (splitContainer != null) Unsplit (); vbox.Remove (this.mainsw); RecreateMainSw (); this.splitContainer = vSplit ? (Gtk.Paned)new VPaned () : (Gtk.Paned)new HPaned (); splitContainer.Add1 (mainsw); this.splitContainer.ButtonPressEvent += delegate(object sender, ButtonPressEventArgs args) { if (args.Event.Type == Gdk.EventType.TwoButtonPress && args.RetVal == null) { Unsplit (); } }; secondsw = new DecoratedScrolledWindow (this); splittedTextEditor = new MonoDevelop.SourceEditor.ExtensibleTextEditor (view, textEditor.Options, textEditor.Document); splittedTextEditor.TextArea.FocusInEvent += (o, s) => { lastActiveEditor = (ExtensibleTextEditor)((TextArea)o).GetTextEditorData ().Parent; view.FireCompletionContextChanged (); }; splittedTextEditor.TextArea.FocusOutEvent += delegate { if (!textEditor.TextArea.HasFocus) OnLostFocus (); }; splittedTextEditor.Extension = textEditor.Extension; if (textEditor.GetTextEditorData ().HasIndentationTracker) splittedTextEditor.GetTextEditorData ().IndentationTracker = textEditor.GetTextEditorData ().IndentationTracker; splittedTextEditor.Document.BracketMatcher = textEditor.Document.BracketMatcher; secondsw.SetTextEditor (splittedTextEditor); splitContainer.Add2 (secondsw); vbox.PackStart (splitContainer, true, true, 0); splitContainer.Position = (vSplit ? vbox.Allocation.Height : vbox.Allocation.Width) / 2 - 1; vbox.ShowAll (); secondsw.Vadjustment.Value = mainsw.Vadjustment.Value = vadjustment; secondsw.Hadjustment.Value = mainsw.Hadjustment.Value = hadjustment; }
public SourceEditorWidget (SourceEditorView view) { this.view = view; vbox.SetSizeRequest (32, 32); this.lastActiveEditor = this.textEditor = new MonoDevelop.SourceEditor.ExtensibleTextEditor (view); this.textEditor.TextArea.FocusInEvent += (o, s) => { lastActiveEditor = (ExtensibleTextEditor)((TextArea)o).GetTextEditorData ().Parent; view.FireCompletionContextChanged (); }; this.textEditor.TextArea.FocusOutEvent += delegate { if (this.splittedTextEditor == null || !splittedTextEditor.TextArea.HasFocus) OnLostFocus (); }; if (IdeApp.CommandService != null) IdeApp.FocusOut += IdeApp_FocusOut; mainsw = new DecoratedScrolledWindow (this); mainsw.SetTextEditor (textEditor); vbox.PackStart (mainsw, true, true, 0); textEditorData = textEditor.GetTextEditorData (); textEditorData.EditModeChanged += TextEditorData_EditModeChanged; ResetFocusChain (); UpdateLineCol (); // this.IsClassBrowserVisible = this.widget.TextEditor.Options.EnableQuickFinder; vbox.BorderWidth = 0; vbox.Spacing = 0; vbox.Focused += delegate { UpdateLineCol (); }; vbox.Destroyed += delegate { if (isDisposed) return; isDisposed = true; StopParseInfoThread (); KillWidgets (); ClearQuickTaskProvider (); ClearUsageTaskProvider (); if (textEditor != null && !textEditor.IsDestroyed) textEditor.Destroy (); if (splittedTextEditor != null && !splittedTextEditor.IsDestroyed) splittedTextEditor.Destroy (); this.lastActiveEditor = null; this.splittedTextEditor = null; this.textEditor = null; textEditorData.EditModeChanged -= TextEditorData_EditModeChanged; textEditorData = null; view = null; parsedDocument = null; // IdeApp.Workbench.StatusBar.ClearCaretState (); }; vbox.ShowAll (); }