Fixing SetColumnWidth and selection handling, attempt at fixing ClearAll(), and initial impl. for EditLabel / EndEditLabel.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Kevin Ollivier
2006-09-22 17:37:01 +00:00
parent 9d4b8a5d0d
commit 54638f9e66

View File

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