]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/listctrl_mac.cpp
fixing focus, fixes #9985
[wxWidgets.git] / src / osx / carbon / listctrl_mac.cpp
index 64641fae9c080507a7930cb724557ab33d2ef4c6..a933d4ad0e9e0ee23a8be49609d73277b6156d8f 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/mac/listctrl_mac.cpp
+// Name:        src/osx/listctrl_mac.cpp
 // Purpose:     wxListCtrl
 // Author:      Julian Smart
 // Modified by: Agron Selimaj
@@ -176,7 +176,7 @@ static pascal OSStatus wxMacListCtrlEventHandler( EventHandlerCallRef handler ,
 
 DEFINE_ONE_SHOT_HANDLER_GETTER( wxMacListCtrlEventHandler )
 
-class wxMacListCtrlItem : public wxMacListBoxItem
+class wxMacListCtrlItem : public wxMacDataItem
 {
 public:
     wxMacListCtrlItem();
@@ -214,8 +214,6 @@ public:
 
     // create a list item (can be a subclass of wxMacListBoxItem)
 
-    virtual wxMacDataItem* CreateItem();
-
     virtual void MacInsertItem( unsigned int n, wxListItem* item );
     virtual void MacSetColumnInfo( unsigned int row, unsigned int column, wxListItem* item );
     virtual void MacGetColumnInfo( unsigned int row, unsigned int column, wxListItem& item );
@@ -517,10 +515,9 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-wxMacListControl* wxListCtrl::GetPeer() const
+wxMacDataBrowserListCtrlControl* wxListCtrl::GetListPeer() const
 {
-    wxMacDataBrowserListCtrlControl *lb = wxDynamicCast(m_peer,wxMacDataBrowserListCtrlControl);
-    return lb ? wx_static_cast(wxMacListControl*,lb) : 0 ;
+    return dynamic_cast<wxMacDataBrowserListCtrlControl*> ( GetPeer() );
 }
 
 // ----------------------------------------------------------------------------
@@ -894,7 +891,7 @@ bool wxListCtrl::SetBackgroundColour(const wxColour& colour)
     return rv;
 }
 
-wxColour wxListCtrl::GetBackgroundColour()
+wxColour wxListCtrl::GetBackgroundColour() const
 {
     if (m_genericImpl)
         return m_genericImpl->GetBackgroundColour();
@@ -2433,11 +2430,6 @@ void wxMacListCtrlItem::Notification(wxMacDataItemBrowserControl *owner ,
     // we want to depend on as little as possible to make sure tear-down of controls is safe
     if ( message == kDataBrowserItemRemoved)
     {
-        if ( lb != NULL && lb->GetClientDataType() == wxClientData_Object )
-        {
-            delete (wxClientData*) (m_data);
-        }
-
         delete this;
         return;
     }
@@ -2448,7 +2440,7 @@ void wxMacListCtrlItem::Notification(wxMacDataItemBrowserControl *owner ,
         return  ;
     }
 
-    wxListCtrl *list = wxDynamicCast( owner->GetPeer() , wxListCtrl );
+    wxListCtrl *list = wxDynamicCast( owner->GetWXPeer() , wxListCtrl );
     if ( list && lb )
     {
         bool trigger = false;
@@ -2669,7 +2661,7 @@ void wxMacDataBrowserListCtrlControl::DrawItem(
     int imgIndex = -1;
     short listColumn = property - kMinColumnId;
 
-    wxListCtrl* list = wxDynamicCast( GetPeer() , wxListCtrl );
+    wxListCtrl* list = wxDynamicCast( GetWXPeer() , wxListCtrl );
     wxMacListCtrlItem* lcItem;
     wxColour color = *wxBLACK;
     wxColour bgColor = wxNullColour;
@@ -2829,7 +2821,7 @@ void wxMacDataBrowserListCtrlControl::DrawItem(
     HIThemeTextHorizontalFlush hFlush = kHIThemeTextHorizontalFlushLeft;
     HIThemeTextInfo info;
     bool setup = false;
-#if wxMAC_USE_CORE_TEXT
+#if wxOSX_USE_CORE_TEXT
     if ( UMAGetSystemVersion() >= 0x1050 )
     {
         info.version = kHIThemeTextInfoVersionOne;
@@ -2842,7 +2834,7 @@ void wxMacDataBrowserListCtrlControl::DrawItem(
         }
     }
 #endif
-#if wxMAC_USE_ATSU_TEXT
+#if wxOSX_USE_ATSU_TEXT
     if ( !setup )
     {
         info.version = kHIThemeTextInfoVersionZero;
@@ -2905,7 +2897,7 @@ OSStatus wxMacDataBrowserListCtrlControl::GetSetItemData(DataBrowserItemID itemI
     short listColumn = property - kMinColumnId;
 
     OSStatus err = errDataBrowserPropertyNotSupported;
-    wxListCtrl* list = wxDynamicCast( GetPeer() , wxListCtrl );
+    wxListCtrl* list = wxDynamicCast( GetWXPeer() , wxListCtrl );
     wxMacListCtrlItem* lcItem = NULL;
 
     if (listColumn >= 0)
@@ -3024,7 +3016,7 @@ void wxMacDataBrowserListCtrlControl::ItemNotification(DataBrowserItemID itemID,
         return  ;
     }
 
-    wxListCtrl *list = wxDynamicCast( GetPeer() , wxListCtrl );
+    wxListCtrl *list = wxDynamicCast( GetWXPeer() , wxListCtrl );
     if ( list )
     {
         bool trigger = false;
@@ -3102,7 +3094,7 @@ Boolean wxMacDataBrowserListCtrlControl::CompareItems(DataBrowserItemID itemOneI
 
     int colId = sortProperty - kMinColumnId;
 
-    wxListCtrl* list = wxDynamicCast( GetPeer() , wxListCtrl );
+    wxListCtrl* list = wxDynamicCast( GetWXPeer() , wxListCtrl );
 
     DataBrowserSortOrder sort;
     verify_noerr(GetSortOrder(&sort));
@@ -3175,7 +3167,7 @@ void wxMacDataBrowserListCtrlControl::MacSetColumnInfo( unsigned int row, unsign
         listItem->SetOrder(row);
         UpdateState(dataItem, item);
 
-        wxListCtrl* list = wxDynamicCast( GetPeer() , wxListCtrl );
+        wxListCtrl* list = wxDynamicCast( GetWXPeer() , wxListCtrl );
 
         // NB: When this call was made before a control was completely shown, it would
         // update the item prematurely (i.e. no text would be listed) and, on show,
@@ -3245,18 +3237,14 @@ void wxMacDataBrowserListCtrlControl::MacGetColumnInfo( unsigned int row, unsign
         }
     }
 }
-
 void wxMacDataBrowserListCtrlControl::MacInsertItem( unsigned int n, wxListItem* item )
 {
-    wxMacDataItemBrowserControl::MacInsert(n, item->GetText());
+    
+    wxMacDataItemBrowserControl::MacInsert(n, new wxMacListCtrlItem() );
     MacSetColumnInfo(n, 0, item);
 }
 
-wxMacDataItem* wxMacDataBrowserListCtrlControl::CreateItem()
-{
-    return new wxMacListCtrlItem();
-}
-
 wxMacListCtrlItem::wxMacListCtrlItem()
 {
     m_rowItems = wxListItemList();
@@ -3278,9 +3266,10 @@ void wxMacListCtrlItem::SetColumnImageValue( unsigned int column, int imageIndex
 
 wxString wxMacListCtrlItem::GetColumnTextValue( unsigned int column )
 {
+/* TODO CHECK REMOVE
     if ( column == 0 )
         return GetLabel();
-
+*/
     if ( HasColumnInfo(column) )
         return GetColumnInfo(column)->GetText();
 
@@ -3292,9 +3281,11 @@ void wxMacListCtrlItem::SetColumnTextValue( unsigned int column, const wxString&
     if ( HasColumnInfo(column) )
         GetColumnInfo(column)->SetText(text);
 
+/* TODO CHECK REMOVE
     // for compatibility with superclass APIs
     if ( column == 0 )
         SetLabel(text);
+*/
 }
 
 wxListItem* wxMacListCtrlItem::GetColumnInfo( unsigned int column )