]> git.saurik.com Git - wxWidgets.git/commitdiff
Fixing SetColumnWidth and selection handling, attempt at fixing ClearAll(), and initi...
authorKevin Ollivier <kevino@theolliviers.com>
Fri, 22 Sep 2006 17:37:01 +0000 (17:37 +0000)
committerKevin Ollivier <kevino@theolliviers.com>
Fri, 22 Sep 2006 17:37:01 +0000 (17:37 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/listctrl_mac.cpp

index 31dfaa7fa8b61f21b3a8458a40d2d727b03f3109..bc6232271d3ac17ab4269f5ebda7f4a0c9d40056 100644 (file)
@@ -382,10 +382,21 @@ bool wxListCtrl::SetColumnWidth(int col, int width)
     //       to the entire window width; investigate why
     //       this is.
     
-    //if (m_dbImpl){
-    //    m_dbImpl->SetColumnWidth(col+1, width);
-    //    return true;
-    //}
+    if (m_dbImpl){
+        int mywidth = width;
+        if (width == wxLIST_AUTOSIZE || width == wxLIST_AUTOSIZE_USEHEADER)
+            mywidth = 150;
+            
+        if (col == -1){
+            for (int column = 0; column < GetColumnCount(); column++){
+                m_dbImpl->SetColumnWidth(col, mywidth);
+            }
+        }
+        else{
+            m_dbImpl->SetColumnWidth(col, mywidth);
+        }
+        return true;
+    }
     
     return false;
 }
@@ -927,9 +938,10 @@ void wxListCtrl::ClearAll()
         return;
     }
     
-    DeleteAllItems();
-    if ( m_colCount > 0 )
+    if (m_dbImpl){
+        DeleteAllItems();
         DeleteAllColumns();
+    }
 }
 
 wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass)
@@ -937,6 +949,10 @@ wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass)
     if (m_genericImpl)
         return m_genericImpl->EditLabel(item, textControlClass);
         
+    if (m_dbImpl){
+        wxMacDataItem* id = m_dbImpl->GetItemFromLine(item);
+        verify_noerr( SetDataBrowserEditItem(m_dbImpl->GetControlRef(), (DataBrowserItemID)id, kMinColumnId) );
+    }
     return NULL;
 }
 
@@ -945,10 +961,11 @@ bool wxListCtrl::EndEditLabel(bool cancel)
 {
     // TODO: generic impl. doesn't have this method - is it needed for us?
     if (m_genericImpl)
-        return false; // m_genericImpl->EndEditLabel(cancel);
+        return true; // m_genericImpl->EndEditLabel(cancel);
         
-    bool b = true;
-    return b;
+    if (m_dbImpl)
+        verify_noerr( SetDataBrowserEditItem(m_dbImpl->GetControlRef(), kDataBrowserNoItem, kMinColumnId) );
+    return true;
 }
 
 // Ensures this item is visible
@@ -1282,6 +1299,7 @@ void wxMacListCtrlItem::Notification(wxMacDataItemBrowserControl *owner ,
             
         wxListEvent event( wxEVT_COMMAND_LIST_ITEM_SELECTED, list->GetId() );
         bool isSingle = list->GetWindowStyle() | wxLC_SINGLE_SEL;
+        
         event.SetEventObject( list );
         event.m_itemIndex = owner->GetLineFromItem( this ) ;
         if ( !list->IsVirtual() )
@@ -1345,7 +1363,7 @@ wxMacDataBrowserListCtrlControl::wxMacDataBrowserListCtrlControl( wxWindow *peer
     }
     else
     {
-        options |= kDataBrowserAlwaysExtendSelection | kDataBrowserCmdTogglesSelection;
+        options |= kDataBrowserCmdTogglesSelection;
     }
 
     err = SetSelectionFlags( options );
@@ -1354,8 +1372,10 @@ wxMacDataBrowserListCtrlControl::wxMacDataBrowserListCtrlControl( wxWindow *peer
     if ( style & wxLC_LIST ){
         InsertColumn(0, kDataBrowserIconAndTextType, wxEmptyString, -1, -1);
         verify_noerr( AutoSizeColumns() );
-        verify_noerr( SetHeaderButtonHeight( 0 ) );
     }
+    
+    if ( style & wxLC_LIST || style & wxLC_NO_HEADER )
+        verify_noerr( SetHeaderButtonHeight( 0 ) );
 
     SetDataBrowserSortProperty( m_controlRef , kMinColumnId );
     if ( style & wxLC_SORT_ASCENDING )
@@ -1376,6 +1396,12 @@ wxMacDataBrowserListCtrlControl::wxMacDataBrowserListCtrlControl( wxWindow *peer
         SetDataBrowserSortProperty( m_controlRef , kMinColumnId);
         SetDataBrowserSortOrder( m_controlRef , kDataBrowserOrderIncreasing);
     }
+    
+    if ( style & wxLC_VRULES ){
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4
+        verify_noerr( DataBrowserChangeAttributes(m_controlRef, kDataBrowserAttributeListViewDrawColumnDividers, kDataBrowserAttributeNone) );
+#endif
+    }
 
     verify_noerr( AutoSizeColumns() );
     verify_noerr( SetHiliteStyle(kDataBrowserTableViewFillHilite ) );