]> git.saurik.com Git - wxWidgets.git/commitdiff
Send delete item event just before the item is actually
authorRobert Roebling <robert@roebling.de>
Sun, 12 Nov 2006 13:27:13 +0000 (13:27 +0000)
committerRobert Roebling <robert@roebling.de>
Sun, 12 Nov 2006 13:27:13 +0000 (13:27 +0000)
   deleted (as per wxMSW). Also include the client data
   (long value) in the event.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/listctrl/listtest.cpp
src/generic/listctrl.cpp

index 9f9a2df9d879d0d6f4d3e4a09ef483d98732dfa8..24f1a188613a6b47bba2756d2daa123d214e2bf4 100644 (file)
@@ -822,6 +822,7 @@ void MyListCtrl::OnEndLabelEdit(wxListEvent& event)
 void MyListCtrl::OnDeleteItem(wxListEvent& event)
 {
     LogEvent(event, _T("OnDeleteItem"));
 void MyListCtrl::OnDeleteItem(wxListEvent& event)
 {
     LogEvent(event, _T("OnDeleteItem"));
+    wxLogMessage( wxT("Number of items when delete event is sent: %d"), GetItemCount() );
 }
 
 void MyListCtrl::OnDeleteAllItems(wxListEvent& event)
 }
 
 void MyListCtrl::OnDeleteAllItems(wxListEvent& event)
index 4cce420c0f3c9bd8cf411b3ca11965f14f4de5da..08e3146d1e4df0e36fe769513d4b6601ddcc0bb0 100644 (file)
@@ -697,7 +697,7 @@ public:
 
     // send out a wxListEvent
     void SendNotify( size_t line,
 
     // send out a wxListEvent
     void SendNotify( size_t line,
-                     wxEventType command,
+                     wxEventType command, 
                      const wxPoint& point = wxDefaultPosition );
 
     // override base class virtual to reset m_lineHeight when the font changes
                      const wxPoint& point = wxDefaultPosition );
 
     // override base class virtual to reset m_lineHeight when the font changes
@@ -2842,6 +2842,7 @@ void wxListMainWindow::SendNotify( size_t line,
 {
     wxListEvent le( command, GetParent()->GetId() );
     le.SetEventObject( GetParent() );
 {
     wxListEvent le( command, GetParent()->GetId() );
     le.SetEventObject( GetParent() );
+    
     le.m_itemIndex = line;
 
     // set only for events which have position
     le.m_itemIndex = line;
 
     // set only for events which have position
@@ -2852,7 +2853,7 @@ void wxListMainWindow::SendNotify( size_t line,
     // program has it anyhow and if we did it would result in accessing all
     // the lines, even those which are not visible now and this is precisely
     // what we're trying to avoid
     // program has it anyhow and if we did it would result in accessing all
     // the lines, even those which are not visible now and this is precisely
     // what we're trying to avoid
-    if ( !IsVirtual() && (command != wxEVT_COMMAND_LIST_DELETE_ITEM) )
+    if ( !IsVirtual() )
     {
         if ( line != (size_t)-1 )
         {
     {
         if ( line != (size_t)-1 )
         {
@@ -4332,11 +4333,11 @@ void wxListMainWindow::DeleteItem( long lindex )
         if ( m_current != index || m_current == count - 1 )
             m_current--;
     }
         if ( m_current != index || m_current == count - 1 )
             m_current--;
     }
-
     if ( InReportView() )
     {
     if ( InReportView() )
     {
-    //  mark the Column Max Width cache as dirty if the items in the line
-    //  we're deleting contain the Max Column Width
+        //  mark the Column Max Width cache as dirty if the items in the line
+        //  we're deleting contain the Max Column Width
         wxListLineData * const line = GetLine(index);
         wxListItemDataList::compatibility_iterator n;
         wxListItemData *itemData;
         wxListLineData * const line = GetLine(index);
         wxListItemDataList::compatibility_iterator n;
         wxListItemData *itemData;
@@ -4358,6 +4359,8 @@ void wxListMainWindow::DeleteItem( long lindex )
         ResetVisibleLinesRange();
     }
 
         ResetVisibleLinesRange();
     }
 
+    SendNotify( index, wxEVT_COMMAND_LIST_DELETE_ITEM, wxDefaultPosition );
+
     if ( IsVirtual() )
     {
         m_countVirt--;
     if ( IsVirtual() )
     {
         m_countVirt--;
@@ -4371,8 +4374,6 @@ void wxListMainWindow::DeleteItem( long lindex )
     // we need to refresh the (vert) scrollbar as the number of items changed
     m_dirty = true;
 
     // we need to refresh the (vert) scrollbar as the number of items changed
     m_dirty = true;
 
-    SendNotify( index, wxEVT_COMMAND_LIST_DELETE_ITEM );
-
     RefreshAfter(index);
 }
 
     RefreshAfter(index);
 }