]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/listbox.mm
don't hang forever in Dispatch() if there is no event loop
[wxWidgets.git] / src / cocoa / listbox.mm
index 384e24b6b4e4e81e0cb39cfea448fff1805a6aba..5e9239d031377aa48a61f6ac6d56a1f447dd45d6 100644 (file)
@@ -9,9 +9,12 @@
 // Licence:    wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-#include "wx/app.h"
-#include "wx/listbox.h"
-#include "wx/log.h"
+#include "wx/wxprec.h"
+#ifndef WX_PRECOMP
+    #include "wx/log.h"
+    #include "wx/app.h"
+    #include "wx/listbox.h"
+#endif //WX_PRECOMP
 
 #include "wx/cocoa/string.h"
 #include "wx/cocoa/NSTableDataSource.h"
@@ -50,6 +53,7 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID winid,
 
     SetNSTableView([[NSTableView alloc] initWithFrame: MakeDefaultNSRect(size)]);
     [m_cocoaNSView release];
+    [GetNSTableView() setHeaderView: nil];
 
     // Set up the data source
     m_cocoaDataSource = [[wxCocoaNSTableDataSource alloc] init];
@@ -58,11 +62,15 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID winid,
     // Add the single column
     NSTableColumn *tableColumn = [[NSTableColumn alloc] initWithIdentifier:nil];
     [GetNSTableView() addTableColumn: tableColumn];
-//    [tableColumn release];
+    [tableColumn release];
 
+    [GetNSTableView() sizeToFit];
     // Finish
     if(m_parent)
         m_parent->CocoaAddChild(this);
+    // NSTableView does WEIRD things with sizes.  Wrapping it in an
+    // NSScrollView seems to be the only reasonable solution.
+    CocoaCreateNSScrollView();
     SetInitialFrameRect(pos,size);
 
     return true;
@@ -73,7 +81,7 @@ wxListBox::~wxListBox()
     [GetNSTableView() setDataSource: nil];
     [m_cocoaDataSource release];
     [m_cocoaItems release];
-    DisassociateNSTableView(m_cocoaNSView);
+    DisassociateNSTableView(GetNSTableView());
 }
 
 int wxListBox::CocoaDataSource_numberOfRows()