X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6c02c32922ecd6b3272c89669e3fe1304cd9dfac..f35719ef1d3b34fb42ebfab33944ea9cdc4413eb:/samples/listctrl/listtest.cpp diff --git a/samples/listctrl/listtest.cpp b/samples/listctrl/listtest.cpp index d216a4cecb..d1c8d7d4af 100644 --- a/samples/listctrl/listtest.cpp +++ b/samples/listctrl/listtest.cpp @@ -90,6 +90,7 @@ BEGIN_EVENT_TABLE(MyListCtrl, wxListCtrl) EVT_LIST_KEY_DOWN(LIST_CTRL, MyListCtrl::OnListKeyDown) EVT_LIST_ITEM_ACTIVATED(LIST_CTRL, MyListCtrl::OnActivated) EVT_LIST_COL_CLICK(LIST_CTRL, MyListCtrl::OnColClick) + EVT_LIST_CACHE_HINT(LIST_CTRL, MyListCtrl::OnCacheHint) EVT_CHAR(MyListCtrl::OnChar) END_EVENT_TABLE() @@ -551,6 +552,12 @@ void MyFrame::OnDeleteAll(wxCommandEvent& WXUNUSED(event)) // MyListCtrl +void MyListCtrl::OnCacheHint(wxListEvent& event) +{ + wxLogMessage( "OnCacheHint: cache items %ld..%ld", + event.GetCacheFrom(), event.GetCacheTo() ); +} + void MyListCtrl::OnColClick(wxListEvent& event) { wxLogMessage( "OnColumnClick at %d.", event.GetColumn() ); @@ -674,9 +681,20 @@ void MyListCtrl::OnListKeyDown(wxListEvent& event) break; case WXK_DELETE: - DeleteItem(event.GetIndex()); + { + long item = GetNextItem(-1, + wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + while ( item != -1 ) + { + DeleteItem(item); + + wxLogMessage(_T("Item %ld deleted"), item); - wxLogMessage(_T("Item %d deleted"), event.GetIndex()); + // -1 because the indices were shifted by DeleteItem() + item = GetNextItem(item - 1, + wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + } + } break; case WXK_INSERT: