private void BuildNotebook() { notebook = new Notebook(); notebook.Show(); foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes("/Banshee/Gui/TrackEditor/NotebookPage")) { try { ITrackEditorPage page = (ITrackEditorPage)node.CreateInstance(); if ((mode == EditorMode.Edit && (page.PageType == PageType.Edit || page.PageType == PageType.View)) || (mode == EditorMode.View && (page.PageType == PageType.View || page.PageType == PageType.ViewOnly))) { pages.Add(page); page.Initialize(this); page.Widget.Show(); } } catch (Exception e) { Hyena.Log.Exception("Failed to initialize NotebookPage extension node. Ensure it implements ITrackEditorPage.", e); } } pages.Sort(delegate(ITrackEditorPage a, ITrackEditorPage b) { return(a.Order.CompareTo(b.Order)); }); foreach (ITrackEditorPage page in pages) { Container container = page.Widget as Container; if (container == null) { VBox box = new VBox(); box.PackStart(page.Widget, true, true, 0); container = box; } container.BorderWidth = 12; notebook.AppendPage(container, page.TabWidget == null ? new Label(page.Title) : page.TabWidget); } main_vbox.PackStart(notebook, true, true, 0); }
private void BuildNotebook() { notebook = new Notebook(); notebook.Scrollable = true; notebook.Show(); Gtk.Widget page_to_focus = null; foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes("/Banshee/Gui/TrackEditor/NotebookPage")) { try { ITrackEditorPage page = (ITrackEditorPage)node.CreateInstance(); bool show = false; if (mode == EditorMode.Edit && (page.PageType != PageType.ViewOnly)) { show = true; } else if (mode == EditorMode.View) { if (readonly_tabs) { show = page.PageType != PageType.EditOnly; } else { show = page.PageType == PageType.View || page.PageType == PageType.ViewOnly; } } if (show) { if (page is StatisticsPage && mode == EditorMode.View) { page_to_focus = (StatisticsPage)page; } pages.Add(page); page.Initialize(this); page.Widget.Show(); } } catch (Exception e) { Hyena.Log.Exception("Failed to initialize NotebookPage extension node. Ensure it implements ITrackEditorPage.", e); } } pages.Sort(delegate(ITrackEditorPage a, ITrackEditorPage b) { return(a.Order.CompareTo(b.Order)); }); foreach (ITrackEditorPage page in pages) { Container container = page.Widget as Container; if (container == null) { VBox box = new VBox(); box.PackStart(page.Widget, true, true, 0); container = box; } container.BorderWidth = 12; notebook.AppendPage(container, page.TabWidget == null ? new Label(page.Title) : page.TabWidget); } main_vbox.PackStart(notebook, true, true, 0); if (page_to_focus != null) { notebook.CurrentPage = notebook.PageNum(page_to_focus); } }