Gtk.Widget MakeNotebooksPane ()
{
notebooksTree = new Notebooks.NotebooksTreeView (Notebooks.NotebookManager.NotebooksWithSpecialItems);
notebooksTree.Selection.Mode = Gtk.SelectionMode.Single;
notebooksTree.HeadersVisible = true;
notebooksTree.RulesHint = false;
Gtk.CellRenderer renderer;
Gtk.TreeViewColumn column = new Gtk.TreeViewColumn ();
column.Title = Catalog.GetString ("Notebooks");
column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
column.Resizable = false;
renderer = new Gtk.CellRendererPixbuf ();
column.PackStart (renderer, false);
column.SetCellDataFunc (renderer,
new Gtk.TreeCellDataFunc (NotebookPixbufCellDataFunc));
var textRenderer = new Gtk.CellRendererText ();
// TODO: Make special notebooks' rows uneditable
textRenderer.Editable = true;
column.PackStart (textRenderer, true);
column.SetCellDataFunc (textRenderer,
new Gtk.TreeCellDataFunc (NotebookTextCellDataFunc));
textRenderer.Edited += OnNotebookRowEdited;
notebooksTree.AppendColumn (column);
notebooksTree.RowActivated += OnNotebookRowActivated;
notebooksTree.Selection.Changed += OnNotebookSelectionChanged;
notebooksTree.ButtonPressEvent += OnNotebooksTreeButtonPressed;
notebooksTree.KeyPressEvent += OnNotebooksKeyPressed;
notebooksTree.FocusInEvent += OnNotebooksFocusIn;
notebooksTree.Show ();
Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow ();
sw.HscrollbarPolicy = Gtk.PolicyType.Automatic;
sw.VscrollbarPolicy = Gtk.PolicyType.Automatic;
sw.ShadowType = Gtk.ShadowType.In;
sw.Add (notebooksTree);
sw.Show ();
return sw;
}