From 8b4b586ce92d44e8689b8eab5c25be4bc56d98f6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sun, 24 Feb 2008 17:07:13 +0000 Subject: [PATCH] fixed wxListCtrl::RefreshItem(s) - it didn't update anything before git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52041 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/carbon/listctrl_mac.cpp | 56 +++++++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/src/mac/carbon/listctrl_mac.cpp b/src/mac/carbon/listctrl_mac.cpp index db5e90e89a..fc27f289ef 100644 --- a/src/mac/carbon/listctrl_mac.cpp +++ b/src/mac/carbon/listctrl_mac.cpp @@ -2297,9 +2297,26 @@ void wxListCtrl::RefreshItem(long item) return; } - wxRect rect; - GetItemRect(item, rect); - RefreshRect(rect); + if (m_dbImpl) + { + 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) @@ -2310,14 +2327,35 @@ void wxListCtrl::RefreshItems(long itemFrom, long itemTo) return; } - wxRect rect1, rect2; - GetItemRect(itemFrom, rect1); - GetItemRect(itemTo, rect2); + if (m_dbImpl) + { + const long count = itemTo - itemFrom + 1; + DataBrowserItemID *ids = new DataBrowserItemID[count]; + + if ( !IsVirtual() ) + { + 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; + } - wxRect rect = rect1; - rect.height = rect2.GetBottom() - rect1.GetTop(); + m_dbImpl->wxMacDataBrowserControl::UpdateItems + ( + kDataBrowserNoItem, + count, ids, + kDataBrowserItemNoProperty, // preSortProperty + kDataBrowserNoItem // update all columns + ); - RefreshRect(rect); + delete[] ids; + } } void wxListCtrl::SetDropTarget( wxDropTarget *dropTarget ) -- 2.45.2