void RecreateMainSw () { // destroy old scrolled window to work around Bug 526721 - When splitting window vertically, // the slider under left split is not shown unitl window is resized double vadjustment = mainsw.Vadjustment.Value; double hadjustment = mainsw.Hadjustment.Value; var removedTextEditor = mainsw.RemoveTextEditor (); mainsw.Destroy (); mainsw = new DecoratedScrolledWindow (this); mainsw.SetTextEditor (removedTextEditor); mainsw.Vadjustment.Value = vadjustment; mainsw.Hadjustment.Value = hadjustment; lastActiveEditor = textEditor; }
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 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); this.splittedTextEditor = new MonoDevelop.SourceEditor.ExtensibleTextEditor (view, this.textEditor.Options, textEditor.Document); this.splittedTextEditor.Extension = textEditor.Extension; this.splittedTextEditorContainer = new TextEditorContainer (this.splittedTextEditor); secondsw.SetTextEditor (this.splittedTextEditorContainer); splitContainer.Add2 (secondsw); vbox.PackStart (splitContainer, true, true, 0); this.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 void Unsplit () { if (splitContainer == null) return; double vadjustment = mainsw.Vadjustment.Value; double hadjustment = mainsw.Hadjustment.Value; splitContainer.Remove (mainsw); if (this.textEditor == lastActiveEditor) { secondsw.Destroy (); secondsw = null; splittedTextEditor = null; } else { this.mainsw.Destroy (); this.mainsw = secondsw; vadjustment = secondsw.Vadjustment.Value; hadjustment = secondsw.Hadjustment.Value; splitContainer.Remove (secondsw); lastActiveEditor = this.textEditor = splittedTextEditor; splittedTextEditor = null; } vbox.Remove (splitContainer); splitContainer.Destroy (); splitContainer = null; RecreateMainSw (); vbox.PackStart (mainsw, true, true, 0); vbox.ShowAll (); mainsw.Vadjustment.Value = vadjustment; mainsw.Hadjustment.Value = hadjustment; }
public SourceEditorWidget (SourceEditorView view) { this.view = view; vbox.SetSizeRequest (32, 32); this.lastActiveEditor = this.textEditor = new MonoDevelop.SourceEditor.ExtensibleTextEditor (view); mainsw = new DecoratedScrolledWindow (this); this.textEditorContainer = new TextEditorContainer (textEditor); mainsw.SetTextEditor (textEditorContainer); vbox.PackStart (mainsw, true, true, 0); this.textEditor.Errors = errors; options = this.textEditor.Options; 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; StopParseInfoThread (); KillWidgets (); this.textEditor = null; this.lastActiveEditor = null; this.splittedTextEditor = null; view = null; IdeApp.Workbench.StatusBar.ClearCaretState (); if (parseInformationUpdaterWorkerThread != null) { parseInformationUpdaterWorkerThread.Dispose (); parseInformationUpdaterWorkerThread = null; } }; vbox.ShowAll (); parseInformationUpdaterWorkerThread = new BackgroundWorker (); parseInformationUpdaterWorkerThread.WorkerSupportsCancellation = true; parseInformationUpdaterWorkerThread.DoWork += HandleParseInformationUpdaterWorkerThreadDoWork; }
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 (); }
public SourceEditorWidget (SourceEditorView view) { this.view = view; vbox.SetSizeRequest (32, 32); this.lastActiveEditor = this.textEditor = new MonoDevelop.SourceEditor.ExtensibleTextEditor (view); mainsw = new DecoratedScrolledWindow (this); this.textEditorContainer = new TextEditorContainer (textEditor); mainsw.SetTextEditor (textEditorContainer); vbox.PackStart (mainsw, true, true, 0); this.textEditor.Errors = errors; options = this.textEditor.Options; textEditorData = textEditor.GetTextEditorData (); ResetFocusChain (); UpdateLineCol (); ProjectDomService.ParsedDocumentUpdated += OnParseInformationChanged; // this.IsClassBrowserVisible = this.widget.TextEditor.Options.EnableQuickFinder; vbox.BorderWidth = 0; vbox.Spacing = 0; vbox.Focused += delegate { UpdateLineCol (); }; vbox.Destroyed += delegate { isDisposed = true; StopParseInfoThread (); KillWidgets (); this.textEditor = null; this.lastActiveEditor = null; this.splittedTextEditor = null; view = null; ProjectDomService.ParsedDocumentUpdated -= OnParseInformationChanged; IdeApp.Workbench.StatusBar.ClearCaretState (); }; vbox.ShowAll (); }