//columnId used to identify which column was clicked later, hacky solution
        TreeViewColumn GetEntriesTreeViewColumn(string title, string columnID, int sortColumnId, 
		                                         TreeCellDataFunc treeCellDataFunc,
		                                         EditedHandler editHandler = null)
        {
            TreeViewColumn column = new TreeViewColumn ();
            column.Expand = true;
            column.SortIndicator = true;
            column.SortColumnId = sortColumnId;
            column.Sizing = TreeViewColumnSizing.Fixed;
            column.Resizable = true;
            column.Title = GettextCatalog.GetString (title);
            column.Data.Add ("columnID", columnID);

            CellRendererText textCell = new CellRendererText ();
            //cell.Ellipsize = Pango.EllipsizeMode.End;
            textCell.WrapMode = Pango.WrapMode.Word;
            textCell.Editable = true;

            if (editHandler == null)
                textCell.EditingStarted += DeferEditing;
            else
                textCell.Edited += editHandler;

            var p = Gtk.IconTheme.Default.LoadIcon ("gtk-zoom-in", 16, (IconLookupFlags) 0);

            CellRendererButton zoomCell = new CellRendererButton (p);
            zoomCell.Clicked += OnZoomCellClick;
            zoomCell.Data.Add ("columnID", columnID);

            column.AddNotification ("width", OnColumnWidthChanged);
            column.PackStart (zoomCell, false);
            column.PackStart (textCell, true);
            column.SetCellDataFunc (textCell, treeCellDataFunc);

            return column;
        }