Add support for wxDV_NO_HEADER to OS X/Cocoa wxDataViewCtrl.
Also use this flag with the tree control in the sample to test it and also because it doesn't make much sense to have a single column without title anyhow. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
2406d5341f
commit
a35169b622
@ -502,6 +502,8 @@ public:
|
||||
id GetItemAtRow(int row) const;
|
||||
|
||||
private:
|
||||
void InitOutlineView(long style);
|
||||
|
||||
wxCocoaOutlineDataSource* m_DataSource;
|
||||
|
||||
wxCocoaOutlineView* m_OutlineView;
|
||||
|
@ -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 );
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user