Changeset 3420 for trunk/src/comctl32/listview.cpp
- Timestamp:
- Apr 18, 2000, 6:04:55 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/comctl32/listview.cpp
r3415 r3420 1 /*$Id: listview.cpp,v 1.1 6 2000-04-17 17:04:12cbratschi Exp $*/1 /*$Id: listview.cpp,v 1.17 2000-04-18 16:02:37 cbratschi Exp $*/ 2 2 /* 3 3 * Listview control … … 182 182 if (nLast > nBottom) nLast = nBottom; 183 183 184 H eader_GetItemRect(infoPtr->hwndHeader,0,&rcHeader);184 HEADER_GetItemRect(infoPtr->hwndHeader,(WPARAM)0,(LPARAM)&rcHeader); 185 185 rcHeader.left += REPORT_MARGINX; 186 186 rcHeader.right = max(rcHeader.left,rcHeader.right-REPORT_MARGINX); … … 374 374 INT nNumOfItems = GETITEMCOUNT(infoPtr); 375 375 376 infoPtr->maxScroll.x = nNumOfItems /nCountPerColumn;376 infoPtr->maxScroll.x = nNumOfItems/nCountPerColumn; 377 377 if (nNumOfItems % nCountPerColumn) 378 378 infoPtr->maxScroll.x++; 379 379 380 infoPtr->lefttop.x = LISTVIEW_GetTopIndex(hwnd) /nCountPerColumn;380 infoPtr->lefttop.x = LISTVIEW_GetTopIndex(hwnd)/nCountPerColumn; 381 381 infoPtr->scrollPage.x = nCountPerRow; 382 382 infoPtr->scrollStep.x = infoPtr->nItemWidth; … … 668 668 { 669 669 /* calculate width of header */ 670 nHeaderItemCount = H eader_GetItemCount(infoPtr->hwndHeader);670 nHeaderItemCount = HEADER_GetItemCount(infoPtr->hwndHeader); 671 671 for (i = 0; i < nHeaderItemCount; i++) 672 672 { 673 if (H eader_GetItemRect(infoPtr->hwndHeader, i,&rcHeaderItem))673 if (HEADER_GetItemRect(infoPtr->hwndHeader,(WPARAM)i,(LPARAM)&rcHeaderItem)) 674 674 { 675 675 nItemWidth += (rcHeaderItem.right - rcHeaderItem.left); … … 749 749 { 750 750 /* calculate width of header */ 751 nHeaderItemCount = H eader_GetItemCount(infoPtr->hwndHeader);751 nHeaderItemCount = HEADER_GetItemCount(infoPtr->hwndHeader); 752 752 for (i = 0; i < nHeaderItemCount; i++) 753 753 { 754 if (H eader_GetItemRect(infoPtr->hwndHeader, i,&rcHeaderItem) != 0)754 if (HEADER_GetItemRect(infoPtr->hwndHeader,(WPARAM)i,(LPARAM)&rcHeaderItem) != 0) 755 755 { 756 756 nItemWidth += (rcHeaderItem.right - rcHeaderItem.left); … … 1134 1134 1135 1135 nItem = nTop+(pt.y/infoPtr->nItemHeight)+ 1136 ((INT)(pt.x -infoPtr->lefttop.x*infoPtr->scrollStep.x)/infoPtr->nItemWidth)*nCountPerColumn;1136 ((INT)(pt.x/infoPtr->nItemWidth))*nCountPerColumn; 1137 1137 if (nItem >= GETITEMCOUNT(infoPtr)) return -1; 1138 1138 … … 1895 1895 LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)LISTVIEW_GetInfoPtr(hwnd); 1896 1896 INT nDrawPosY = infoPtr->rcList.top; 1897 INT nColumnCount = H eader_GetItemCount(infoPtr->hwndHeader);1897 INT nColumnCount = HEADER_GetItemCount(infoPtr->hwndHeader); 1898 1898 RECT rcItem,*rcHeader; 1899 1899 INT j,nItem,nLast,xOffset = infoPtr->lefttop.x*infoPtr->scrollStep.x; … … 1920 1920 for (j = 0;j < nColumnCount;j++) 1921 1921 { 1922 H eader_GetItemRect(infoPtr->hwndHeader,j,&rcHeader[j]);1922 HEADER_GetItemRect(infoPtr->hwndHeader,(WPARAM)j,(LPARAM)&rcHeader[j]); 1923 1923 rcHeader[j].left += REPORT_MARGINX; 1924 1924 rcHeader[j].right = max(rcHeader[j].left,rcHeader[j].right-REPORT_MARGINX); … … 2499 2499 BOOL bResult = FALSE; 2500 2500 2501 if (H eader_DeleteItem(infoPtr->hwndHeader, nColumn))2501 if (HEADER_DeleteItem(infoPtr->hwndHeader, nColumn)) 2502 2502 { 2503 2503 bResult = LISTVIEW_RemoveColumn(infoPtr->hdpaItems, nColumn); … … 3313 3313 } 3314 3314 3315 if (unicode) 3316 bResult = Header_GetItemW(infoPtr->hwndHeader,nItem,&hdi); 3317 else 3318 bResult = Header_GetItemA(infoPtr->hwndHeader,nItem,(HDITEMW*)&hdi); 3315 bResult = HEADER_GetItem(infoPtr->hwndHeader,(WPARAM)nItem,(LPARAM)&hdi,unicode); 3319 3316 if (bResult) 3320 3317 { … … 3366 3363 LISTVIEW_INFO *infoPtr = (LISTVIEW_INFO *)LISTVIEW_GetInfoPtr(hwnd); 3367 3364 3368 return H eader_GetOrderArray(infoPtr->hwndHeader,iCount,lpiArray);3365 return HEADER_GetOrderArray(infoPtr->hwndHeader,(WPARAM)iCount,(LPARAM)lpiArray); 3369 3366 } 3370 3367 … … 3395 3392 ZeroMemory(&hdi,sizeof(HDITEMW)); 3396 3393 hdi.mask = HDI_WIDTH; 3397 if (H eader_GetItemW(infoPtr->hwndHeader, nColumn, &hdi))3394 if (HEADER_GetItem(infoPtr->hwndHeader,(WPARAM)nColumn,(LPARAM)&hdi,TRUE)) 3398 3395 { 3399 3396 return hdi.cxy; … … 3568 3565 { 3569 3566 LISTVIEW_ITEMDATA *lpItemData = LISTVIEW_GetItemData(lpItem->hdpaSubItems,lpLVItem->iSubItem); 3567 3568 //add subitem if not present 3569 if (!lpItemData && (lpLVItem->iSubItem > 0) && (lpLVItem->iSubItem < HEADER_GetItemCount(infoPtr->hwndHeader))) 3570 { 3571 INT nPosition; 3572 3573 lpItemData = (LISTVIEW_ITEMDATA*)COMCTL32_Alloc(sizeof(LISTVIEW_ITEMDATA)); 3574 ZeroMemory(lpItemData,sizeof(LISTVIEW_ITEMDATA)); 3575 lpItemData->pszText = LPSTR_TEXTCALLBACKW; 3576 lpItemData->iImage = I_IMAGECALLBACK; 3577 lpItemData->iSubItem = lpLVItem->iSubItem; 3578 nPosition = LISTVIEW_FindInsertPosition(lpItem->hdpaSubItems,lpItemData->iSubItem); 3579 DPA_InsertPtr(lpItem->hdpaSubItems,nPosition,lpItemData); 3580 } 3570 3581 3571 3582 if (lpItemData) … … 3864 3875 RECT rect; 3865 3876 3866 if (H eader_GetItemRect(infoPtr->hwndHeader,nSubItem,&rect))3877 if (HEADER_GetItemRect(infoPtr->hwndHeader,(WPARAM)nSubItem,(LPARAM)&rect)) 3867 3878 { 3868 3879 lpptPosition->x = rect.left+REPORT_MARGINX; … … 4218 4229 4219 4230 nSubItem = lprc->top; 4220 if ((nSubItem < 0) || (nSubItem >= H eader_GetItemCount(infoPtr->hwndHeader))) return FALSE;4231 if ((nSubItem < 0) || (nSubItem >= HEADER_GetItemCount(infoPtr->hwndHeader))) return FALSE; 4221 4232 if (!LISTVIEW_GetSubItemPosition(hwnd,nItem,nSubItem,&ptItem)) return FALSE; 4222 4233 … … 4749 4760 if (checkSubItems && (infoPtr->uView == LVS_REPORT)) 4750 4761 { 4751 INT nColumnCount = H eader_GetItemCount(infoPtr->hwndHeader);4762 INT nColumnCount = HEADER_GetItemCount(infoPtr->hwndHeader); 4752 4763 INT xDiff = -infoPtr->lefttop.x*infoPtr->scrollStep.x; 4753 4764 … … 4758 4769 RECT rcColumn; 4759 4770 4760 H eader_GetItemRect(infoPtr->hwndHeader,x,&rcColumn);4771 HEADER_GetItemRect(infoPtr->hwndHeader,(WPARAM)x,(LPARAM)&rcColumn); 4761 4772 rcItem.left = xDiff+REPORT_MARGINX+rcColumn.left; 4762 4773 rcItem.right = xDiff+rcColumn.right-REPORT_MARGINX; … … 4852 4863 4853 4864 nItem = nTop+(lpHitTestInfo->pt.y/infoPtr->nItemHeight)+ 4854 ((INT)(lpHitTestInfo->pt.x -infoPtr->lefttop.x*infoPtr->scrollStep.x)/infoPtr->nItemWidth)*nCountPerColumn;4865 ((INT)(lpHitTestInfo->pt.x/infoPtr->nItemWidth))*nCountPerColumn; 4855 4866 if (nItem >= GETITEMCOUNT(infoPtr)) return -1; 4856 4867 … … 5041 5052 5042 5053 /* insert item in header control */ 5043 if (unicode) 5044 nNewColumn = Header_InsertItemW(infoPtr->hwndHeader,nColumn,&hdi); 5045 else 5046 nNewColumn = Header_InsertItemA(infoPtr->hwndHeader,nColumn,&hdi); 5054 nNewColumn = HEADER_InsertItem(infoPtr->hwndHeader,(WPARAM)nColumn,(LPARAM)&hdi,unicode); 5047 5055 5048 5056 /* Need to reset the item width when inserting a new column */ … … 5396 5404 5397 5405 if ((lpColumn != NULL) && (nColumn >= 0) && 5398 (nColumn < H eader_GetItemCount(infoPtr->hwndHeader)))5406 (nColumn < HEADER_GetItemCount(infoPtr->hwndHeader))) 5399 5407 { 5400 5408 /* initialize memory */ … … 5408 5416 /* get current format first */ 5409 5417 hdiget.mask = HDI_FORMAT; 5410 if (H eader_GetItemW(infoPtr->hwndHeader, nColumn, &hdiget))5418 if (HEADER_GetItem(infoPtr->hwndHeader,(WPARAM)nColumn,(LPARAM)&hdiget,TRUE)) 5411 5419 /* preserve HDF_STRING if present */ 5412 5420 hdi.fmt = hdiget.fmt & HDF_STRING; … … 5477 5485 5478 5486 /* set header item attributes */ 5479 if (unicode) 5480 bResult = Header_SetItemW(infoPtr->hwndHeader,nColumn,&hdi); 5481 else 5482 bResult = Header_SetItemA(infoPtr->hwndHeader,nColumn,(HDITEMA*)&hdi); 5487 bResult = HEADER_SetItem(infoPtr->hwndHeader,(WPARAM)nColumn,(LPARAM)&hdi,unicode); 5483 5488 } 5484 5489 … … 5506 5511 BOOL rc,changed = FALSE; 5507 5512 5508 nHeaderItemCount = H eader_GetItemCount(infoPtr->hwndHeader);5513 nHeaderItemCount = HEADER_GetItemCount(infoPtr->hwndHeader); 5509 5514 if (iCount != nHeaderItemCount) return FALSE; 5510 5515 5511 5516 oldArray = (LPINT)COMCTL32_Alloc(nHeaderItemCount*sizeof(INT)); 5512 H eader_GetOrderArray(infoPtr->hwndHeader,nHeaderItemCount,oldArray);5513 rc = H eader_SetOrderArray(infoPtr->hwndHeader,iCount,lpiArray);5517 HEADER_GetOrderArray(infoPtr->hwndHeader,(WPARAM)nHeaderItemCount,(LPARAM)oldArray); 5518 rc = HEADER_SetOrderArray(infoPtr->hwndHeader,(WPARAM)iCount,(LPARAM)lpiArray); 5514 5519 if (rc) 5515 5520 { … … 5545 5550 lpItemData = LISTVIEW_GetItemData(lpItem->hdpaSubItems,diffList[y]); 5546 5551 if (!lpItemData) continue; 5552 lpItemData->iSubItem = y; 5547 5553 DPA_InsertPtr(newDPA,newDPA->nItemCount,lpItemData); 5548 5554 } … … 5613 5619 5614 5620 // call header to update the column change 5615 lret = H eader_SetItemW(infoPtr->hwndHeader, (WPARAM)iCol, (LPARAM)&hdi);5621 lret = HEADER_SetItem(infoPtr->hwndHeader,(WPARAM)iCol,(LPARAM)&hdi,TRUE); 5616 5622 5617 5623 infoPtr->nItemWidth = LISTVIEW_GetItemWidth(hwnd); … … 5881 5887 { 5882 5888 /* set subitem only if column is present */ 5883 if (H eader_GetItemCount(infoPtr->hwndHeader) > lpLVItem->iSubItem)5889 if (HEADER_GetItemCount(infoPtr->hwndHeader) > lpLVItem->iSubItem) 5884 5890 { 5885 5891 lpItemData = (LISTVIEW_ITEMDATA*)COMCTL32_Alloc(sizeof(LISTVIEW_ITEMDATA)); … … 6964 6970 LVHITTESTINFO htInfo; 6965 6971 6966 // TRACE("(hwnd=%x,key=%hu,X=%hu,Y=%hu)\n", hwnd, wKey, wPosX, wPosY);6967 6968 6972 /* send NM_DBLCLK notification */ 6969 6973 sendNotify(hwnd,NM_DBLCLK); … … 7542 7546 hl.prc = &rcList; 7543 7547 hl.pwpos = ℘ 7544 H eader_Layout(infoPtr->hwndHeader,&hl);7548 HEADER_Layout(infoPtr->hwndHeader,(WPARAM)0,(LPARAM)&hl); 7545 7549 SetWindowPos(infoPtr->hwndHeader,hwnd,wp.x,wp.y,wp.cx,wp.cy,wp.flags); 7546 7550 infoPtr->rcList.top = max(wp.cy,0); … … 7610 7614 hl.prc = &rcList; 7611 7615 hl.pwpos = ℘ 7612 H eader_Layout(infoPtr->hwndHeader,&hl);7616 HEADER_Layout(infoPtr->hwndHeader,(WPARAM)0,(LPARAM)&hl); 7613 7617 SetWindowPos(infoPtr->hwndHeader, hwnd, wp.x, wp.y, wp.cx, wp.cy, 7614 7618 wp.flags);
Note:
See TracChangeset
for help on using the changeset viewer.