]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/listctrl/listtest.cpp
Added some WXDLLEXPORTs
[wxWidgets.git] / samples / listctrl / listtest.cpp
index d216a4cecba207dd4f45d70454152dfebf69799d..d1c8d7d4af8d20c7d7e64cbb6871aa4e6dfc4a49 100644 (file)
@@ -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: