m_ignoreChangeMessages = false;
m_AnyInternalData = false;
-
- m_count = 0;
}
}
m_textCtrl = NULL;
}
- if (m_ownsImageListNormal) delete m_imageListNormal;
- if (m_ownsImageListSmall) delete m_imageListSmall;
- if (m_ownsImageListState) delete m_imageListState;
+ if (m_ownsImageListNormal)
+ delete m_imageListNormal;
+ if (m_ownsImageListSmall)
+ delete m_imageListSmall;
+ if (m_ownsImageListState)
+ delete m_imageListState;
}
// ----------------------------------------------------------------------------
return false;
}
- m_count -= 1;
+ m_count--;
wxASSERT_MSG( m_count == ListView_GetItemCount(GetHwnd()),
wxT("m_count should match ListView_GetItemCount"));
// Deletes all items
bool wxListCtrl::DeleteAllItems()
{
- m_count = 0;
return ListView_DeleteAllItems(GetHwnd()) != 0;
}
// ignored for efficiency. It is done here because the internal data is in the
// process of being deleted so we don't want to try and access it below.
if ( m_ignoreChangeMessages &&
- ( (nmLV->hdr.code == LVN_ITEMCHANGED) || (nmLV->hdr.code == LVN_ITEMCHANGING)))
+ ( (nmLV->hdr.code == LVN_ITEMCHANGED) ||
+ (nmLV->hdr.code == LVN_ITEMCHANGING)) )
{
return true;
}
break;
case LVN_DELETEITEM:
- if (m_count == 0)
- // this should be prevented by the post-processing code below,
- // but "just in case"
+ if ( m_count == 0 )
+ {
+ // this should be prevented by the post-processing code
+ // below, but "just in case"
return false;
+ }
eventType = wxEVT_COMMAND_LIST_DELETE_ITEM;
event.m_itemIndex = iItem;
// also, we may free all user data now (couldn't do it before as
// the user should have access to it in OnDeleteAllItems() handler)
FreeAllInternalData();
+
+ // the control is empty now, synchronize the cached number of items
+ // with the real one
+ m_count = 0;
return true;
case LVN_ENDLABELEDITA: