//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; }