From: Robin Dunn Date: Fri, 21 Jun 2002 03:03:37 +0000 (+0000) Subject: Refactored my last change a bit and applied it in another place too. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/6149de710aad76cb871473b7386b98d3ee5f33c1 Refactored my last change a bit and applied it in another place too. Added the wx prefix to the other static funcitons for consistency. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15904 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp index cae8ad8d26..ecc6895b54 100644 --- a/src/msw/listctrl.cpp +++ b/src/msw/listctrl.cpp @@ -171,9 +171,10 @@ public: }; // Get the internal data structure -static wxListItemInternalData *GetInternalData(HWND hwnd, long itemId); -static wxListItemInternalData *GetInternalData(wxListCtrl *ctl, long itemId); -static wxListItemAttr *GetInternalDataAttr(wxListCtrl *ctl, long itemId); +static wxListItemInternalData *wxGetInternalData(HWND hwnd, long itemId); +static wxListItemInternalData *wxGetInternalData(wxListCtrl *ctl, long itemId); +static wxListItemAttr *wxGetInternalDataAttr(wxListCtrl *ctl, long itemId); +static void wxDeleteInternalData(wxListCtrl* ctl, long itemId); // ---------------------------------------------------------------------------- @@ -364,19 +365,8 @@ void wxListCtrl::FreeAllInternalData() int i = 0; for (i = 0; i < n; i++) - { - wxListItemInternalData *data = GetInternalData(this, i); - if (data) - { - delete data; - LV_ITEM item; - memset(&item, 0, sizeof(item)); - item.iItem = i; - item.mask = LVIF_PARAM; - item.lParam = (LPARAM) 0; - BOOL result = ListView_SetItem(GetHwnd(), &item); - } - } + wxDeleteInternalData(this, i); + m_AnyInternalData = FALSE; } } @@ -732,7 +722,7 @@ bool wxListCtrl::SetItem(wxListItem& info) { // get internal item data // perhaps a cache here ? - wxListItemInternalData *data = GetInternalData(this, info.m_itemId); + wxListItemInternalData *data = wxGetInternalData(this, info.m_itemId); if (! data) { @@ -1205,7 +1195,6 @@ bool wxListCtrl::DeleteItem(long item) // Deletes all items bool wxListCtrl::DeleteAllItems() { - FreeAllInternalData(); return ListView_DeleteAllItems(GetHwnd()) != 0; } @@ -1772,14 +1761,8 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) case LVN_DELETEITEM: eventType = wxEVT_COMMAND_LIST_DELETE_ITEM; event.m_itemIndex = nmLV->iItem; - // delete the assoicated internal data - { - wxListItemInternalData *data = - GetInternalData(this, nmLV->iItem); - if (data) - delete data; - }; + wxDeleteInternalData(this, nmLV->iItem); break; case LVN_SETDISPINFO: @@ -2070,7 +2053,7 @@ WXLPARAM wxListCtrl::OnCustomDraw(WXLPARAM lParam) wxListItemAttr *attr = IsVirtual() ? OnGetItemAttr(item) - : GetInternalDataAttr(this, item); + : wxGetInternalDataAttr(this, item); if ( !attr ) { @@ -2267,7 +2250,7 @@ void wxListCtrl::RefreshItems(long itemFrom, long itemTo) RefreshRect(rect); } -static wxListItemInternalData *GetInternalData(HWND hwnd, long itemId) +static wxListItemInternalData *wxGetInternalData(HWND hwnd, long itemId) { LV_ITEM it; it.mask = LVIF_PARAM; @@ -2280,20 +2263,34 @@ static wxListItemInternalData *GetInternalData(HWND hwnd, long itemId) return NULL; }; -static wxListItemInternalData *GetInternalData(wxListCtrl *ctl, long itemId) +static wxListItemInternalData *wxGetInternalData(wxListCtrl *ctl, long itemId) { - return GetInternalData((HWND) ctl->GetHWND(), itemId); + return wxGetInternalData((HWND) ctl->GetHWND(), itemId); }; -static wxListItemAttr *GetInternalDataAttr(wxListCtrl *ctl, long itemId) +static wxListItemAttr *wxGetInternalDataAttr(wxListCtrl *ctl, long itemId) { - wxListItemInternalData *data = GetInternalData(ctl, itemId); + wxListItemInternalData *data = wxGetInternalData(ctl, itemId); if (data) return data->attr; else return NULL; }; +static void wxDeleteInternalData(wxListCtrl* ctl, long itemId) +{ + wxListItemInternalData *data = wxGetInternalData(ctl, itemId); + if (data) + { + delete data; + LV_ITEM item; + memset(&item, 0, sizeof(item)); + item.iItem = itemId; + item.mask = LVIF_PARAM; + item.lParam = (LPARAM) 0; + ListView_SetItem((HWND)ctl->GetHWND(), &item); + } +} static void wxConvertFromMSWListItem(HWND hwndListCtrl, wxListItem& info,