fixed wxListCtrl::RefreshItem(s) - it didn't update anything before

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@52040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2008-02-24 17:06:35 +00:00
parent 361349fe79
commit c2c60cff09

View File

@@ -2302,9 +2302,26 @@ void wxListCtrl::RefreshItem(long item)
return; return;
} }
wxRect rect; if (m_dbImpl)
GetItemRect(item, rect); {
RefreshRect(rect); DataBrowserItemID id;
if ( !IsVirtual() )
{
wxMacDataItem* thisItem = m_dbImpl->GetItemFromLine(item);
id = (DataBrowserItemID) thisItem;
}
else
id = item+1;
m_dbImpl->wxMacDataBrowserControl::UpdateItems
(
kDataBrowserNoItem,
1, &id,
kDataBrowserItemNoProperty, // preSortProperty
kDataBrowserNoItem // update all columns
);
}
} }
void wxListCtrl::RefreshItems(long itemFrom, long itemTo) void wxListCtrl::RefreshItems(long itemFrom, long itemTo)
@@ -2315,14 +2332,35 @@ void wxListCtrl::RefreshItems(long itemFrom, long itemTo)
return; return;
} }
wxRect rect1, rect2; if (m_dbImpl)
GetItemRect(itemFrom, rect1); {
GetItemRect(itemTo, rect2); const long count = itemTo - itemFrom + 1;
DataBrowserItemID *ids = new DataBrowserItemID[count];
wxRect rect = rect1; if ( !IsVirtual() )
rect.height = rect2.GetBottom() - rect1.GetTop(); {
for ( long i = 0; i < count; i++ )
{
wxMacDataItem* thisItem = m_dbImpl->GetItemFromLine(itemFrom+i);
ids[i] = (DataBrowserItemID) thisItem;
}
}
else
{
for ( long i = 0; i < count; i++ )
ids[i] = itemFrom+i+1;
}
RefreshRect(rect); m_dbImpl->wxMacDataBrowserControl::UpdateItems
(
kDataBrowserNoItem,
count, ids,
kDataBrowserItemNoProperty, // preSortProperty
kDataBrowserNoItem // update all columns
);
delete[] ids;
}
} }
void wxListCtrl::SetDropTarget( wxDropTarget *dropTarget ) void wxListCtrl::SetDropTarget( wxDropTarget *dropTarget )