From 176cee7e1dc6b51f6fd469047690bfd164ab5afa Mon Sep 17 00:00:00 2001 From: Aric Stewart Date: Tue, 1 Aug 2000 20:58:33 +0000 Subject: [PATCH] Fixed a few bugs including one with setting extended styles and editing labels. Implemented the LVS_EX_FULLROWSELECT extended style. Begin an implementation of virtual list views (LVS_OWNERDATA style set). --- dlls/comctl32/listview.c | 343 +++++++++++++++++++++++++++++++-------- include/listview.h | 2 +- 2 files changed, 275 insertions(+), 70 deletions(-) diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index 03f85720b84..bfe5d2d5449 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -1915,6 +1915,24 @@ static BOOL LISTVIEW_SetItem(HWND hwnd, LPLVITEMA lpLVItem) UINT uView = lStyle & LVS_TYPEMASK; INT item_width; + if (lStyle & LVS_OWNERDATA) + { + if ((lpLVItem->iSubItem == 0)&&(lpLVItem->mask == LVIF_STATE)) + { + hdpaSubItems = (HDPA)DPA_GetPtr(infoPtr->hdpaItems, lpLVItem->iItem); + if (hdpaSubItems != NULL) + { + lpItem = (LISTVIEW_ITEM *)DPA_GetPtr(hdpaSubItems, 0); + if (lpItem != NULL) + { + lpItem->state = lpLVItem->state & lpLVItem->stateMask; + return TRUE; + } + } + } + return FALSE; + } + if (lpLVItem != NULL) { if (lpLVItem->iSubItem == 0) @@ -2108,7 +2126,7 @@ static INT LISTVIEW_GetTopIndex(HWND hwnd) * None */ static VOID LISTVIEW_DrawSubItem(HWND hwnd, HDC hdc, INT nItem, INT nSubItem, - RECT rcItem) + RECT rcItem, BOOL Selected) { LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0); CHAR szDispText[DISP_TEXT_SIZE]; @@ -2127,11 +2145,39 @@ static VOID LISTVIEW_DrawSubItem(HWND hwnd, HDC hdc, INT nItem, INT nSubItem, LISTVIEW_GetItemA(hwnd, &lvItem, TRUE); /* set item colors */ - SetBkColor(hdc, infoPtr->clrTextBk); - SetTextColor(hdc, infoPtr->clrText); - + if (ListView_GetItemState(hwnd,nItem,LVIS_SELECTED) + &&(infoPtr->bFocus != FALSE) && Selected) + { + SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT)); + SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT)); + } + else + { + SetBkColor(hdc, infoPtr->clrTextBk); + SetTextColor(hdc, infoPtr->clrText); + } + ExtTextOutA(hdc, rcItem.left, rcItem.top, ETO_OPAQUE | ETO_CLIPPED, &rcItem, lvItem.pszText, lstrlenA(lvItem.pszText), NULL); + + if (Selected) + { + /* fill in the gap */ + RECT rec; + if (nSubItem < Header_GetItemCount(infoPtr->hwndHeader)-1) + { + CopyRect(&rec,&rcItem); + rec.left = rec.right; + rec.right = rec.left+REPORT_MARGINX; + ExtTextOutA(hdc, rec.left , rec.top, ETO_OPAQUE | ETO_CLIPPED, + &rec, NULL, 0, NULL); + } + CopyRect(&rec,&rcItem); + rec.right = rec.left; + rec.left = rec.left - REPORT_MARGINX; + ExtTextOutA(hdc, rec.left , rec.top, ETO_OPAQUE | ETO_CLIPPED, + &rec, NULL, 0, NULL); + } } @@ -2148,7 +2194,7 @@ static VOID LISTVIEW_DrawSubItem(HWND hwnd, HDC hdc, INT nItem, INT nSubItem, * RETURN: * None */ -static VOID LISTVIEW_DrawItem(HWND hwnd, HDC hdc, INT nItem, RECT rcItem) +static VOID LISTVIEW_DrawItem(HWND hwnd, HDC hdc, INT nItem, RECT rcItem, BOOL FullSelect, RECT* SuggestedFocus) { LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0); CHAR szDispText[DISP_TEXT_SIZE]; @@ -2162,6 +2208,7 @@ static VOID LISTVIEW_DrawItem(HWND hwnd, HDC hdc, INT nItem, RECT rcItem) TRACE("(hwnd=%x, hdc=%x, nItem=%d)\n", hwnd, hdc, nItem); + /* get information needed for drawing the item */ ZeroMemory(&lvItem, sizeof(LVITEMA)); lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE | LVIF_INDENT; @@ -2183,6 +2230,8 @@ static VOID LISTVIEW_DrawItem(HWND hwnd, HDC hdc, INT nItem, RECT rcItem) } rcItem.left += ImageBuffer + infoPtr->iconSize.cx; + if (SuggestedFocus) + SuggestedFocus->left += ImageBuffer + infoPtr->iconSize.cx; } /* small icons */ @@ -2203,10 +2252,12 @@ static VOID LISTVIEW_DrawItem(HWND hwnd, HDC hdc, INT nItem, RECT rcItem) } rcItem.left += ImageBuffer + infoPtr->iconSize.cx; + if (SuggestedFocus) + SuggestedFocus->left += ImageBuffer + infoPtr->iconSize.cx; } /* Don't bother painting item being edited */ - if (infoPtr->hwndEdit && lvItem.state & LVIS_FOCUSED) + if (infoPtr->hwndEdit && lvItem.state & LVIS_FOCUSED && !FullSelect) return; if ((lvItem.state & LVIS_SELECTED) && (infoPtr->bFocus != FALSE)) @@ -2237,16 +2288,32 @@ static VOID LISTVIEW_DrawItem(HWND hwnd, HDC hdc, INT nItem, RECT rcItem) nLabelWidth = ListView_GetStringWidthA(hwnd, lvItem.pszText); if (rcItem.left + nLabelWidth < rcItem.right) { - rcItem.right = rcItem.left + nLabelWidth; + if (!FullSelect) + rcItem.right = rcItem.left + nLabelWidth; } /* draw label */ - ExtTextOutA(hdc, rcItem.left, rcItem.top, ETO_OPAQUE | ETO_CLIPPED, + ExtTextOutA(hdc, rcItem.left + 1, rcItem.top, ETO_OPAQUE | ETO_CLIPPED, &rcItem, lvItem.pszText, lstrlenA(lvItem.pszText), NULL); + + if (FullSelect) + { + /* fill in the gap */ + RECT rec; + CopyRect(&rec,&rcItem); + rec.left = rec.right; + rec.right = rec.left+REPORT_MARGINX; + ExtTextOutA(hdc, rec.left , rec.top, ETO_OPAQUE | ETO_CLIPPED, + &rec, NULL, 0, NULL); + } if ((lvItem.state & LVIS_FOCUSED) && (infoPtr->bFocus == TRUE)) { - Rectangle(hdc, rcItem.left, rcItem.top, rcItem.right, rcItem.bottom); + if (FullSelect && SuggestedFocus) + Rectangle(hdc, SuggestedFocus->left, SuggestedFocus->top, + SuggestedFocus->right,SuggestedFocus->bottom); + else + Rectangle(hdc, rcItem.left, rcItem.top, rcItem.right, rcItem.bottom); } if (nMixMode != 0) @@ -2378,6 +2445,7 @@ static VOID LISTVIEW_RefreshReport(HWND hwnd, HDC hdc) INT j; INT nItem; INT nLast; + BOOL FullSelected; ZeroMemory(&scrollInfo, sizeof(SCROLLINFO)); scrollInfo.cbSize = sizeof(SCROLLINFO); @@ -2404,12 +2472,32 @@ static VOID LISTVIEW_RefreshReport(HWND hwnd, HDC hdc) (LPARAM)&nmlv); } + nColumnCount = Header_GetItemCount(infoPtr->hwndHeader); + FullSelected = infoPtr->dwExStyle & LVS_EX_FULLROWSELECT; + for (; nItem < nLast; nItem++) { - nColumnCount = Header_GetItemCount(infoPtr->hwndHeader); - for (j = 0; j < nColumnCount; j++) + RECT SuggestedFocusRect; + + if (FullSelected) + { + RECT ir,br; + + Header_GetItemRect(infoPtr->hwndHeader, 0, &ir); + Header_GetItemRect(infoPtr->hwndHeader, nColumnCount-1, &br); + + ir.left += REPORT_MARGINX; + ir.right = max(ir.left, br.right - REPORT_MARGINX); + ir.top = nDrawPosY; + ir.bottom = ir.top + infoPtr->nItemHeight; + + CopyRect(&SuggestedFocusRect,&ir); + } + + for (j = nColumnCount-1; j >=0 ; j--) { Header_GetItemRect(infoPtr->hwndHeader, j, &rcItem); + rcItem.left += REPORT_MARGINX; rcItem.right = max(rcItem.left, rcItem.right - REPORT_MARGINX); rcItem.top = nDrawPosY; @@ -2424,11 +2512,13 @@ static VOID LISTVIEW_RefreshReport(HWND hwnd, HDC hdc) if (j == 0) { - LISTVIEW_DrawItem(hwnd, hdc, nItem, rcItem); + LISTVIEW_DrawItem(hwnd, hdc, nItem, rcItem, FullSelected, + &SuggestedFocusRect); } else { - LISTVIEW_DrawSubItem(hwnd, hdc, nItem, j, rcItem); + LISTVIEW_DrawSubItem(hwnd, hdc, nItem, j, rcItem, + FullSelected); } } @@ -2572,7 +2662,7 @@ static VOID LISTVIEW_RefreshList(HWND hwnd, HDC hdc) rcItem.left = i * nItemWidth; rcItem.bottom = rcItem.top + nItemHeight; rcItem.right = rcItem.left + nItemWidth; - LISTVIEW_DrawItem(hwnd, hdc, nItem, rcItem); + LISTVIEW_DrawItem(hwnd, hdc, nItem, rcItem, FALSE, NULL); } } } @@ -2621,7 +2711,7 @@ static VOID LISTVIEW_RefreshIcon(HWND hwnd, HDC hdc, BOOL bSmall) } else { - LISTVIEW_DrawItem(hwnd, hdc, i, rcItem); + LISTVIEW_DrawItem(hwnd, hdc, i, rcItem, FALSE, NULL); } } } @@ -2867,12 +2957,12 @@ static LRESULT LISTVIEW_DeleteAllItems(HWND hwnd) { COMCTL32_Free(lpSubItem->pszText); } - + /* free subitem */ COMCTL32_Free(lpSubItem); } } - + lpItem = (LISTVIEW_ITEM *)DPA_GetPtr(hdpaSubItems, 0); if (lpItem != NULL) { @@ -2891,7 +2981,7 @@ static LRESULT LISTVIEW_DeleteAllItems(HWND hwnd) { COMCTL32_Free(lpItem->pszText); } - + /* free item */ COMCTL32_Free(lpItem); } @@ -3010,12 +3100,12 @@ static LRESULT LISTVIEW_DeleteItem(HWND hwnd, INT nItem) { COMCTL32_Free(lpSubItem->pszText); } - + /* free item */ COMCTL32_Free(lpSubItem); } } - + lpItem = (LISTVIEW_ITEM *)DPA_GetPtr(hdpaSubItems, 0); if (lpItem != NULL) { @@ -3034,11 +3124,11 @@ static LRESULT LISTVIEW_DeleteItem(HWND hwnd, INT nItem) { COMCTL32_Free(lpItem->pszText); } - + /* free item */ COMCTL32_Free(lpItem); } - + bResult = DPA_Destroy(hdpaSubItems); } @@ -3113,6 +3203,7 @@ static BOOL LISTVIEW_EndEditLabel(HWND hwnd, LPSTR pszText, DWORD nItem) LISTVIEW_ITEM *lpItem; INT nCtrlId = GetWindowLongA(hwnd, GWL_ID); LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)GetWindowLongA(hwnd, 0); + LONG lStyle = GetWindowLongA(hwnd, GWL_STYLE); HDPA hdpaSubItems; BOOL bUpdateItemText; @@ -3142,7 +3233,7 @@ static BOOL LISTVIEW_EndEditLabel(HWND hwnd, LPSTR pszText, DWORD nItem) /* Do we need to update the Item Text */ if(bUpdateItemText) { - if(lpItem->pszText != LPSTR_TEXTCALLBACKA) + if ((lpItem->pszText != LPSTR_TEXTCALLBACKA)&&(!(lStyle & LVS_OWNERDATA))) { Str_SetPtrA(&lpItem->pszText, pszText); } @@ -3951,6 +4042,7 @@ static LRESULT LISTVIEW_GetItemA(HWND hwnd, LPLVITEMA lpLVItem, BOOL internal) INT* piImage; LPSTR* ppszText; HDPA hdpaSubItems; + LONG lStyle = GetWindowLongA(hwnd, GWL_STYLE); /* In the following: * lpLVItem describes the information requested by the user * lpItem/lpSubItem is what we have @@ -3966,6 +4058,36 @@ static LRESULT LISTVIEW_GetItemA(HWND hwnd, LPLVITEMA lpLVItem, BOOL internal) ) return FALSE; + if (lStyle & LVS_OWNERDATA) + { + if (lpLVItem->mask & ~LVIF_STATE) + { + dispInfo.hdr.hwndFrom = hwnd; + dispInfo.hdr.idFrom = lCtrlId; + dispInfo.hdr.code = LVN_GETDISPINFOA; + memcpy(&dispInfo.item,lpLVItem,sizeof(LVITEMA)); + + ListView_Notify(GetParent(hwnd), lCtrlId, &dispInfo); + memcpy(lpLVItem,&dispInfo.item,sizeof(LVITEMA)); + } + + if ((lpLVItem->mask & LVIF_STATE)&&(lpLVItem->iSubItem == 0)) + { + hdpaSubItems = (HDPA)DPA_GetPtr(infoPtr->hdpaItems, lpLVItem->iItem); + if (hdpaSubItems == NULL) + return FALSE; + + lpItem = (LISTVIEW_ITEM *)DPA_GetPtr(hdpaSubItems, 0); + if (lpItem == NULL) + return FALSE; + + lpLVItem->state = lpItem->state & lpLVItem->stateMask; + } + + return TRUE; + } + + hdpaSubItems = (HDPA)DPA_GetPtr(infoPtr->hdpaItems, lpLVItem->iItem); if (hdpaSubItems == NULL) return FALSE; @@ -4444,25 +4566,36 @@ static LRESULT LISTVIEW_GetItemRect(HWND hwnd, INT nItem, LPRECT lprc) lprc->top = ptItem.y; lprc->bottom = lprc->top + infoPtr->nItemHeight; - if (infoPtr->himlState != NULL) - { - lprc->right += infoPtr->iconSize.cx; - } - - if (infoPtr->himlSmall != NULL) - { - lprc->right += infoPtr->iconSize.cx; - } - - nLabelWidth = LISTVIEW_GetLabelWidth(hwnd, nItem); - if (lprc->right + nLabelWidth < lprc->left + infoPtr->nItemWidth) + if (infoPtr->dwExStyle & LVS_EX_FULLROWSELECT) { - lprc->right += nLabelWidth; - } - else - { - lprc->right = lprc->left + infoPtr->nItemWidth; + RECT br; + int nColumnCount = Header_GetItemCount(infoPtr->hwndHeader); + Header_GetItemRect(infoPtr->hwndHeader, nColumnCount-1, &br); + + lprc->right = max(lprc->left, br.right - REPORT_MARGINX); } + else + { + if (infoPtr->himlState != NULL) + { + lprc->right += infoPtr->iconSize.cx; + } + + if (infoPtr->himlSmall != NULL) + { + lprc->right += infoPtr->iconSize.cx; + } + + nLabelWidth = LISTVIEW_GetLabelWidth(hwnd, nItem); + if (lprc->right + nLabelWidth < lprc->left + infoPtr->nItemWidth) + { + lprc->right += nLabelWidth; + } + else + { + lprc->right = lprc->left + infoPtr->nItemWidth; + } + } } break; @@ -4527,26 +4660,36 @@ static LRESULT LISTVIEW_GetItemRect(HWND hwnd, INT nItem, LPRECT lprc) lprc->right = lprc->left; - if (infoPtr->himlSmall != NULL) + if (infoPtr->dwExStyle & LVS_EX_FULLROWSELECT) { - lprc->right += infoPtr->iconSize.cx; - } + RECT br; + int nColumnCount = Header_GetItemCount(infoPtr->hwndHeader); + Header_GetItemRect(infoPtr->hwndHeader, nColumnCount-1, &br); - nLabelWidth = LISTVIEW_GetLabelWidth(hwnd, nItem); - if (lprc->right + nLabelWidth < nLeftPos + infoPtr->nItemWidth) - { - lprc->right += nLabelWidth; - } - else - { - lprc->right = nLeftPos + infoPtr->nItemWidth; - } + lprc->right = max(lprc->left, br.right - REPORT_MARGINX); + } + else + { + if (infoPtr->himlSmall != NULL) + { + lprc->right += infoPtr->iconSize.cx; + } + + nLabelWidth = LISTVIEW_GetLabelWidth(hwnd, nItem); + if (lprc->right + nLabelWidth < nLeftPos + infoPtr->nItemWidth) + { + lprc->right += nLabelWidth; + } + else + { + lprc->right = nLeftPos + infoPtr->nItemWidth; + } + } } break; } } } - return bResult; } @@ -5279,6 +5422,46 @@ static LRESULT LISTVIEW_InsertItemA(HWND hwnd, LPLVITEMA lpLVItem) TRACE("(hwnd=%x,lpLVItem=%p)\n", hwnd, lpLVItem); + if (lStyle & LVS_OWNERDATA) + { + lpItem = (LISTVIEW_ITEM *)COMCTL32_Alloc(sizeof(LISTVIEW_ITEM)); + if (lpItem != NULL) + { + ZeroMemory(lpItem, sizeof(LISTVIEW_ITEM)); + /* insert item in listview control data structure */ + hdpaSubItems = DPA_Create(8); + if (hdpaSubItems != NULL) + { + nItem = DPA_InsertPtr(hdpaSubItems, 0, lpItem); + if (nItem != -1) + { + nItem = DPA_InsertPtr(infoPtr->hdpaItems, 1, + hdpaSubItems); + /* manage item focus */ + if ((lpLVItem)&&(lpLVItem->mask & LVIF_STATE)) + { + lpItem->state &= ~(LVIS_FOCUSED|LVIS_SELECTED); + if (lpLVItem->stateMask & LVIS_SELECTED) + { + LISTVIEW_SetSelection(hwnd, nItem); + } + else if (lpLVItem->stateMask & LVIS_FOCUSED) + { + LISTVIEW_SetItemFocus(hwnd, nItem); + } + } + } + } + } + /* free memory if unsuccessful */ + if ((nItem == -1) && (lpItem != NULL)) + { + COMCTL32_Free(lpItem); + } + + return nItem; + } + if (lpLVItem != NULL) { /* make sure it's not a subitem; cannot insert a subitem */ @@ -5766,7 +5949,10 @@ static LRESULT LISTVIEW_SetExtendedListViewStyle(HWND hwnd, DWORD dwMask, DWORD dwOldStyle = infoPtr->dwExStyle; /* set new style */ - infoPtr->dwExStyle = (dwOldStyle & ~dwMask) | (dwStyle & dwMask); + if (dwMask) + infoPtr->dwExStyle = (dwOldStyle & ~dwMask) | (dwStyle & dwMask); + else + infoPtr->dwExStyle = dwStyle; return (dwOldStyle); } @@ -5929,7 +6115,19 @@ static BOOL LISTVIEW_SetItemCount(HWND hwnd, INT nItems, DWORD dwFlags) if (GetWindowLongA(hwnd, GWL_STYLE) & LVS_OWNERDATA) { - FIXME("LVS_OWNERDATA is set!\n"); + int i; + TRACE("LVS_OWNERDATA is set!\n"); + if (nItems > infoPtr->hdpaItems->nItemCount) + { + for (i = infoPtr->hdpaItems->nItemCount; ihdpaItems->nItemCount; i++) + ListView_DeleteItem(hwnd,1); + } + RedrawWindow(hwnd,0,0,RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW); } else { @@ -5969,12 +6167,16 @@ static BOOL LISTVIEW_SetItemPosition(HWND hwnd, INT nItem, INT nPosX, INT nPosY) { LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO*)GetWindowLongA(hwnd, 0); - UINT uView = GetWindowLongA(hwnd, GWL_STYLE) & LVS_TYPEMASK; + UINT lStyle = GetWindowLongA(hwnd, GWL_STYLE); + UINT uView = lStyle & LVS_TYPEMASK; LISTVIEW_ITEM *lpItem; HDPA hdpaSubItems; BOOL bResult = FALSE; TRACE("(hwnd=%x,nItem=%d,X=%d,Y=%d)\n", hwnd, nItem, nPosX, nPosY); + + if (lStyle & LVS_OWNERDATA) + return FALSE; if ((nItem >= 0) || (nItem < GETITEMCOUNT(infoPtr))) { @@ -6203,9 +6405,13 @@ static LRESULT LISTVIEW_SortItems(HWND hwnd, WPARAM wParam, LPARAM lParam) LISTVIEW_ITEM *lpItem; int nCount, i; HDPA sortList; + UINT lStyle = GetWindowLongA(hwnd, GWL_STYLE); if (!infoPtr || !infoPtr->hdpaItems) return FALSE; + + if (lStyle & LVS_OWNERDATA) + return FALSE; nCount = GETITEMCOUNT(infoPtr); /* if there are 0 or 1 items, there is no need to sort */ @@ -6327,7 +6533,7 @@ static LRESULT LISTVIEW_Create(HWND hwnd, WPARAM wParam, LPARAM lParam) ZeroMemory(&infoPtr->rcList, sizeof(RECT)); infoPtr->hwndEdit = 0; infoPtr->pedititem = NULL; - infoPtr->bDoEditLabel = FALSE; + infoPtr->nEditLabelItem = -1; /* get default font (icon title) */ SystemParametersInfoA(SPI_GETICONTITLELOGFONT, 0, &logFont, 0); @@ -6912,9 +7118,9 @@ static LRESULT LISTVIEW_LButtonDown(HWND hwnd, WORD wKey, WORD wPosX, if (lStyle & LVS_SINGLESEL) { if ((ListView_GetItemState(hwnd, nItem, LVIS_SELECTED) & LVIS_SELECTED) - && infoPtr->bDoEditLabel != TRUE) + && infoPtr->nEditLabelItem == -1) { - infoPtr->bDoEditLabel = TRUE; + infoPtr->nEditLabelItem = nItem; } else { @@ -6945,9 +7151,9 @@ static LRESULT LISTVIEW_LButtonDown(HWND hwnd, WORD wKey, WORD wPosX, else { if (ListView_GetItemState(hwnd, nItem, LVIS_SELECTED) & LVIS_SELECTED - && infoPtr->bDoEditLabel != TRUE) + && infoPtr->nEditLabelItem == -1) { - infoPtr->bDoEditLabel = TRUE; + infoPtr->nEditLabelItem = nItem; } else { @@ -7002,19 +7208,18 @@ static LRESULT LISTVIEW_LButtonUp(HWND hwnd, WORD wKey, WORD wPosX, /* set left button flag */ infoPtr->bLButtonDown = FALSE; - if(infoPtr->bDoEditLabel) + if(infoPtr->nEditLabelItem != -1) { - LVHITTESTINFO htInfo; + POINT ptPosition; int nItem; - ZeroMemory(&htInfo, sizeof(LVHITTESTINFO)); - htInfo.pt.x = wPosX; - htInfo.pt.y = wPosY; - nItem = LISTVIEW_HitTest(hwnd, &htInfo); - if(nItem != -1 && htInfo.flags == LVHT_ONITEMLABEL) + ptPosition.x = wPosX; + ptPosition.y = wPosY; + nItem = LISTVIEW_MouseSelection(hwnd, ptPosition); + if(nItem == infoPtr->nEditLabelItem) { LISTVIEW_EditLabelA(hwnd, nItem); } - infoPtr->bDoEditLabel = FALSE; + infoPtr->nEditLabelItem = -1; } } diff --git a/include/listview.h b/include/listview.h index 96e6ce56b01..36be26f1007 100644 --- a/include/listview.h +++ b/include/listview.h @@ -71,7 +71,7 @@ typedef struct tagLISTVIEW_INFO PFNLVCOMPARE pfnCompare; LPARAM lParamSort; HWND hwndEdit; - BOOL bDoEditLabel; + INT nEditLabelItem; EDITLABEL_ITEM *pedititem; DWORD dwHoverTime;