]> git.saurik.com Git - wxWidgets.git/commitdiff
Add support for wxDV_NO_HEADER to OS X/Cocoa wxDataViewCtrl.
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 10 Nov 2009 17:42:46 +0000 (17:42 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 10 Nov 2009 17:42:46 +0000 (17:42 +0000)
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

include/wx/osx/cocoa/dataview.h
samples/dataview/dataview.cpp
src/osx/cocoa/dataview.mm

index e31a75229649cd9c6d3e2133fa60474209699a05..3406642f1f6fcd036afa067f8e04b5d498a9da44 100644 (file)
@@ -502,6 +502,8 @@ public:
     id GetItemAtRow(int row) const;
 
 private:
+    void InitOutlineView(long style);
+
     wxCocoaOutlineDataSource* m_DataSource;
 
     wxCocoaOutlineView* m_OutlineView;
index 993fca294b29dfd759cee81991a2ecb66edbd42d..0127cd5ddd1643a8dfd752fbb5524e4bbde16af8 100644 (file)
@@ -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 );
index 561042faaf5d4509aa8184e52c67b85be7c614e9..cd1add09e6dd5a82a7cc82c273d1f58cd3b1963b 100644 (file)
@@ -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;
 }