public static void Add(this Notebook notebook, Widget widget, string str, bool isVolatile) { try { widget.Name = str; Extensions.Tabs.Add(str, widget); ScrolledWindow scrolledWindow = new ScrolledWindow(); scrolledWindow.Add(widget); scrolledWindow.Name = str; if (widget is CodeTabWidget tabWidget) { notebook.AppendPage(scrolledWindow, (tabWidget.GetLabel())); tabWidget.GetLabel().ShowAll(); tabWidget.GetLabel().CloseClicked += delegate { notebook.RemovePage(notebook.PageNum(notebook.Children.First(x => x == scrolledWindow))); Extensions.Tabs.Remove(str); }; } else { NotebookTabLabel notebookTabLabel = new NotebookTabLabel(str, widget); notebookTabLabel.CloseClicked += delegate(object obj, EventArgs eventArgs) { notebook.RemovePage(notebook.PageNum(notebook.Children.First(x => x == scrolledWindow))); Extensions.Tabs.Remove(str); }; notebook.AppendPage(scrolledWindow, notebookTabLabel); notebookTabLabel.ShowAll(); } notebook.SetTabDetachable(scrolledWindow, isVolatile); notebook.SetTabReorderable(scrolledWindow, isVolatile); widget.ShowAll(); } catch (ArgumentException) { notebook.Page = notebook.PageNum(Tabs.First(x => x.Key == str).Value); } catch (Exception e) { ExceptionWindow.Create(e, notebook).ShowAll(); } }
protected void newTab(string label, string contents = null, string path = "/") { ScrolledWindow w = new ScrolledWindow(); TextView t = new TextView(); t.LeftMargin = t.RightMargin = 5; t.PixelsAboveLines = 3; t.WrapMode = WrapMode.WordChar; t.ModifyFont(Pango.FontDescription.FromString(settings.font)); t.Buffer.Text = contents; //Label l = new Label (label); Node ll = new Node(t.Buffer.Text); NotebookTabLabel l = new NotebookTabLabel(label, path, ll); t.Buffer.Changed += delegate(object sender, EventArgs e) { l.ptr.rmt(); l.ptr.add(new Node(t.Buffer.Text.ToString())); l.ptr = l.ptr.next; return; }; w.Add(t); notebook.AppendPageMenu(w, l, new Label(label)); notebook.SetTabReorderable(notebook.GetNthPage(notebook.NPages - 1), true); notebook.SetTabDetachable(notebook.GetNthPage(notebook.NPages - 1), true); l.CloseClicked += delegate(object obj, EventArgs eventArgs) { //closeTab (notebook.PageNum(w)); for (int i = notebook.Page; i > notebook.PageNum(w); i--) { notebook.PrevPage(); } for (int i = notebook.Page; i < notebook.PageNum(w); i++) { notebook.NextPage(); } closeDoc(null, null); }; notebook.ShowAll(); for (int i = notebook.Page; i < notebook.NPages; i++) { notebook.NextPage(); } return; }
private void OnShowSource(object sender, CoverageView.ShowSourceEventArgs e) { foreach (Widget widget in notebook1.Children) { SourceWindow notebookSourceWindow = widget as SourceWindow; if (notebookSourceWindow == null) continue; if (notebookSourceWindow.classItem.Model.sourceFile.sourceFile != e.methodItem.ParentClass.Model.sourceFile.sourceFile) continue; notebook1.CurrentPage = notebook1.PageNum (notebookSourceWindow); notebookSourceWindow.CenterOnMethod (e.methodItem); return; } SourceWindow sourceWindow = new SourceWindow (e.methodItem.ParentClass); sourceWindow.CenterOnMethod (e.methodItem); string sourceFile = e.methodItem.ParentClass.Model.sourceFile.sourceFile; sourceFile = Path.GetFileName (sourceFile); NotebookTabLabel notebookTabLabel = new NotebookTabLabel (sourceFile); int index = notebook1.AppendPage (sourceWindow, notebookTabLabel); notebook1.CurrentPage = index; notebookTabLabel.CloseClicked += delegate(object obj, EventArgs eventArgs) { notebook1.CurrentPage = notebook1.PageNum (sourceWindow); OnCloseTab (this, EventArgs.Empty); }; }