Fix width of the wxDataViewTreeCtrl column under OSX/Cocoa.

Set the column resizing mode to "automatic" instead of "none" if the control
doesn't show the header. This allows the native control to properly resize the
only tree control column to always take up the entire window size (provided we
don't explicitly create it resizeable, so don't do this).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-11-10 17:42:58 +00:00
parent a35169b622
commit 0e17930f43
2 changed files with 20 additions and 6 deletions

View File

@@ -2064,7 +2064,15 @@ bool wxDataViewTreeCtrl::Create( wxWindow *parent, wxWindowID id,
AssociateModel( store );
store->DecRef();
AppendIconTextColumn(wxString(),0,wxDATAVIEW_CELL_EDITABLE,-1);
AppendIconTextColumn
(
wxString(), // no label (header is not shown anyhow)
0, // the only model column
wxDATAVIEW_CELL_EDITABLE,
-1, // default width
wxALIGN_NOT, // and alignment
0 // not resizeable
);
return true;
}

View File

@@ -323,18 +323,24 @@ NSTableColumn* CreateNativeColumn(const wxDataViewColumn *column)
// setting the size related parameters:
const int width = column->GetWidthVariable();
int resizingMask;
if (column->IsResizeable())
{
[nativeColumn setResizingMask:NSTableColumnUserResizingMask];
resizingMask = NSTableColumnUserResizingMask;
[nativeColumn setMinWidth:column->GetMinWidth()];
[nativeColumn setMaxWidth:column->GetMaxWidth()];
}
else
else // column is not resizeable [by user]
{
[nativeColumn setResizingMask:NSTableColumnNoResizing];
[nativeColumn setMinWidth:width];
[nativeColumn setMaxWidth:width];
// if the control doesn't show a header, make the columns resize
// automatically, this is particularly important for the single column
// controls (such as wxDataViewTreeCtrl) as their unique column should
// always take up all the available splace
resizingMask = column->GetOwner()->HasFlag(wxDV_NO_HEADER)
? NSTableColumnAutoresizingMask
: NSTableColumnNoResizing;
}
[nativeColumn setResizingMask:resizingMask];
[nativeColumn setWidth:width];
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5