diff options
Diffstat (limited to 'Xwt.XamMac/Xwt.Mac/ListBoxBackend.cs')
-rw-r--r-- | Xwt.XamMac/Xwt.Mac/ListBoxBackend.cs | 34 |
1 files changed, 1 insertions, 33 deletions
diff --git a/Xwt.XamMac/Xwt.Mac/ListBoxBackend.cs b/Xwt.XamMac/Xwt.Mac/ListBoxBackend.cs index aad70347..d2b9b65d 100644 --- a/Xwt.XamMac/Xwt.Mac/ListBoxBackend.cs +++ b/Xwt.XamMac/Xwt.Mac/ListBoxBackend.cs @@ -32,7 +32,7 @@ namespace Xwt.Mac { public class ListBoxBackend: ListViewBackend, IListBoxBackend { - ListViewColumn column = new ListViewColumn (); + readonly ListViewColumn column = new ListViewColumn { Expands = true }; NSTableColumn columnHandle; public ListBoxBackend () @@ -64,38 +64,6 @@ namespace Xwt.Mac column.Views.Add (v); UpdateColumn (column, columnHandle, ListViewColumnChange.Cells); } - - public override void SetSource (IListDataSource source, IBackend sourceBackend) - { - base.SetSource (source, sourceBackend); - - source.RowInserted += HandleColumnSizeChanged; - source.RowDeleted += HandleColumnSizeChanged; - source.RowChanged += HandleColumnSizeChanged; - ResetColumnSize (source); - } - - void HandleColumnSizeChanged (object sender, ListRowEventArgs e) - { - var source = (IListDataSource)sender; - ResetColumnSize (source); - } - - void ResetColumnSize (IListDataSource source) - { - // Calculate size of column - // This is how Apple implements it; unfortunately, they don't expose this functionality in the API. - // https://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSTableViewDelegate_Protocol/index.html#//apple_ref/occ/intfm/NSTableViewDelegate/tableView:sizeToFitWidthOfColumn: - nfloat w = 0; - for (var row = 0; row < source.RowCount; row++) { - using (var cell = Table.GetCell (0, row)) { - var size = cell.CellSize; - w = (nfloat)Math.Max (w, size.Width); - } - } - columnHandle.MinWidth = (nfloat)Math.Ceiling (w); - columnHandle.Width = (nfloat)Math.Ceiling (w); - } } } |