diff --git a/include/wx/osx/cocoa/dataview.h b/include/wx/osx/cocoa/dataview.h index e31a752296..3406642f1f 100644 --- a/include/wx/osx/cocoa/dataview.h +++ b/include/wx/osx/cocoa/dataview.h @@ -502,6 +502,8 @@ public: id GetItemAtRow(int row) const; private: + void InitOutlineView(long style); + wxCocoaOutlineDataSource* m_DataSource; wxCocoaOutlineView* m_OutlineView; diff --git a/samples/dataview/dataview.cpp b/samples/dataview/dataview.cpp index 993fca294b..0127cd5ddd 100644 --- a/samples/dataview/dataview.cpp +++ b/samples/dataview/dataview.cpp @@ -604,7 +604,7 @@ void MyFrame::BuildDataViewCtrl(wxPanel* parent, unsigned int nPanel, unsigned l wxASSERT(!m_ctrl[3]); wxDataViewTreeCtrl* tc = new wxDataViewTreeCtrl( parent, wxID_ANY, wxDefaultPosition, - wxDefaultSize, style ); + wxDefaultSize, style | wxDV_NO_HEADER ); m_ctrl[3] = tc; wxImageList *ilist = new wxImageList( 16, 16 ); diff --git a/src/osx/cocoa/dataview.mm b/src/osx/cocoa/dataview.mm index 561042faaf..cd1add09e6 100644 --- a/src/osx/cocoa/dataview.mm +++ b/src/osx/cocoa/dataview.mm @@ -1818,12 +1818,16 @@ wxCocoaDataViewControl::wxCocoaDataViewControl(wxWindow* peer, [scrollview setAutohidesScrollers:YES]; [scrollview setDocumentView:m_OutlineView]; - // setting up the native control itself - NSUInteger maskGridStyle(NSTableViewGridNone); + // initialize the native control itself too + InitOutlineView(style); +} +void wxCocoaDataViewControl::InitOutlineView(long style) +{ [m_OutlineView setImplementation:this]; [m_OutlineView setColumnAutoresizingStyle:NSTableViewSequentialColumnAutoresizingStyle]; [m_OutlineView setIndentationPerLevel:GetDataViewCtrl()->GetIndent()]; + NSUInteger maskGridStyle(NSTableViewGridNone); if (style & wxDV_HORIZ_RULES) maskGridStyle |= NSTableViewSolidHorizontalGridLineMask; if (style & wxDV_VERT_RULES) @@ -1831,6 +1835,9 @@ wxCocoaDataViewControl::wxCocoaDataViewControl(wxWindow* peer, [m_OutlineView setGridStyleMask:maskGridStyle]; [m_OutlineView setAllowsMultipleSelection: (style & wxDV_MULTIPLE) != 0]; [m_OutlineView setUsesAlternatingRowBackgroundColors:(style & wxDV_ROW_LINES) != 0]; + + if ( style & wxDV_NO_HEADER ) + [m_OutlineView setHeaderView:nil]; } wxCocoaDataViewControl::~wxCocoaDataViewControl() @@ -1844,24 +1851,16 @@ wxCocoaDataViewControl::~wxCocoaDataViewControl() // bool wxCocoaDataViewControl::ClearColumns() { - bool const bufAllowsMultipleSelection = [m_OutlineView allowsMultipleSelection]; - - // as there is a bug in NSOutlineView version (OSX 10.5.6 #6555162) the // columns cannot be deleted if there is an outline column in the view; // therefore, the whole view is deleted and newly constructed: [m_OutlineView release]; m_OutlineView = [[wxCocoaOutlineView alloc] init]; [((NSScrollView*) GetWXWidget()) setDocumentView:m_OutlineView]; - - // setting up the native control itself - [m_OutlineView setImplementation:this]; - [m_OutlineView setColumnAutoresizingStyle:NSTableViewSequentialColumnAutoresizingStyle]; - [m_OutlineView setIndentationPerLevel:GetDataViewCtrl()->GetIndent()]; - if (bufAllowsMultipleSelection) - [m_OutlineView setAllowsMultipleSelection:YES]; [m_OutlineView setDataSource:m_DataSource]; - // done: + + InitOutlineView(GetDataViewCtrl()->GetWindowStyle()); + return true; }