]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/listbox.cpp
removed broken and global GetLine() function from wx/protocol/protocol.h; there's...
[wxWidgets.git] / src / mac / carbon / listbox.cpp
index 1a50bd9dc7701a31f60924664e83f7475997a00b..54717cfb189097ff920896a883cdb223582d49e0 100644 (file)
@@ -58,7 +58,8 @@ bool wxListBox::Create(
 
 wxMacListControl* wxListBox::GetPeer() const
 {
-    return dynamic_cast<wxMacListControl*>(m_peer);
+    wxMacDataBrowserListControl *lb = wxDynamicCast(m_peer,wxMacDataBrowserListControl);
+    return lb ? wx_static_cast(wxMacListControl*,lb) : 0 ;
 }
 
 bool wxListBox::Create(
@@ -245,6 +246,7 @@ wxSize wxListBox::DoGetBestSize() const
     {
 #if wxMAC_USE_CORE_GRAPHICS
         wxClientDC dc(const_cast<wxListBox*>(this));
+        dc.SetFont(GetFont());
 #else
         wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef)MacGetTopLevelWindowRef() ) );
 
@@ -287,9 +289,8 @@ wxSize wxListBox::DoGetBestSize() const
 #else
             wLine = ::TextWidth( str.c_str(), 0, str.length() );
 #endif
-
-            lbWidth = wxMax( lbWidth, wLine );
 #endif
+            lbWidth = wxMax( lbWidth, wLine );
         }
 
         // Add room for the scrollbar
@@ -299,10 +300,10 @@ wxSize wxListBox::DoGetBestSize() const
         int cy = 12;
 #if wxMAC_USE_CORE_GRAPHICS
         wxCoord width, height ;
-        dc.GetTextExtent( wxT("X") , &width, &height);
+        dc.GetTextExtent( wxT("XX") , &width, &height);
         int cx = width ;
 #else
-        int cx = ::TextWidth( "X", 0, 1 );
+        int cx = ::TextWidth( "XX", 0, 1 );
 #endif
         lbWidth += cx;
 
@@ -463,7 +464,7 @@ void wxMacListBoxItem::Notification(wxMacDataItemBrowserControl *owner ,
     DataBrowserItemNotification message,
     DataBrowserItemDataRef itemData ) const
 {
-    wxMacDataBrowserListControl *lb = dynamic_cast<wxMacDataBrowserListControl*>(owner);
+    wxMacDataBrowserListControl *lb = wxDynamicCast(owner,wxMacDataBrowserListControl);
 
     // we want to depend on as little as possible to make sure tear-down of controls is safe
 
@@ -522,6 +523,8 @@ void wxMacListBoxItem::Notification(wxMacDataItemBrowserControl *owner ,
     }
 }
 
+IMPLEMENT_DYNAMIC_CLASS( wxMacDataBrowserListControl , wxMacDataItemBrowserControl )
+
 wxMacDataBrowserListControl::wxMacDataBrowserListControl( wxWindow *peer, const wxPoint& pos, const wxSize& size, long style)
     : wxMacDataItemBrowserControl( peer, pos, size, style )
 {
@@ -537,7 +540,7 @@ wxMacDataBrowserListControl::wxMacDataBrowserListControl( wxWindow *peer, const
     }
     else if ( style & wxLB_EXTENDED )
     {
-        // default behaviour
+        options |= kDataBrowserCmdTogglesSelection;
     }
     else
     {