optimize FindItem(data) performance (closes #9870)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60362 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-04-25 22:31:48 +00:00
parent 7491aa2e0b
commit c767a5bbfe
2 changed files with 124 additions and 146 deletions

View File

@@ -14,8 +14,10 @@
#include "wx/textctrl.h"
#include "wx/dynarray.h"
#include "wx/vector.h"
class WXDLLIMPEXP_FWD_CORE wxImageList;
class wxMSWListItemData;
// define this symbol to indicate the availability of SetColumnsOrder() and
// related functions
@@ -400,6 +402,9 @@ protected:
// free memory taken by all internal data
void FreeAllInternalData();
// get the internal data object for this item (may return NULL)
wxMSWListItemData *MSWGetItemData(long item) const;
// get the item attribute, either by quering it for virtual control, or by
// returning the one previously set using setter methods for a normal one
wxListItemAttr *DoGetItemColumnAttr(long item, long column) const;
@@ -417,10 +422,9 @@ protected:
// keep track of inserted/deleted columns
long m_count; // Keep track of item count to save calls to
// ListView_GetItemCount
bool m_ignoreChangeMessages;
// true if we have any internal data (user data & attributes)
bool m_AnyInternalData;
// all wxMSWListItemData objects we use
wxVector<wxMSWListItemData *> m_internalData;
// true if we have any items with custom attributes
bool m_hasAnyAttr;