listview: LVS_EX_SUBITEMIMAGES
Huw D M Davies
h.davies1 at physics.ox.ac.uk
Mon Nov 10 06:52:30 CST 2003
Huw Davies <huw at codeweavers.com>
Add support for LVS_EX_SUBITEMIMAGES
--
Huw Davies
huw at codeweavers.com
Index: dlls/comctl32/listview.c
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/listview.c,v
retrieving revision 1.373
diff -u -r1.373 listview.c
--- dlls/comctl32/listview.c 9 Nov 2003 00:27:20 -0000 1.373
+++ dlls/comctl32/listview.c 10 Nov 2003 12:50:13 -0000
@@ -88,7 +88,6 @@
* -- LVS_EX_ONECLICKACTIVATE
* -- LVS_EX_REGIONAL
* -- LVS_EX_SIMPLESELECT
- * -- LVS_EX_SUBITEMIMAGES
* -- LVS_EX_TRACKSELECT
* -- LVS_EX_TWOCLICKACTIVATE
* -- LVS_EX_UNDERLINECOLD
@@ -1949,7 +1948,9 @@
Icon.left = State.right;
Icon.top = Box.top;
Icon.right = Icon.left;
- if (infoPtr->himlSmall && (!lpColumnInfo || lpLVItem->iSubItem == 0 || (lpColumnInfo->fmt & LVCFMT_IMAGE)))
+ if (infoPtr->himlSmall &&
+ (!lpColumnInfo || lpLVItem->iSubItem == 0 || (lpColumnInfo->fmt & LVCFMT_IMAGE) ||
+ ((infoPtr->dwLvExStyle & LVS_EX_SUBITEMIMAGES) && lpLVItem->iImage != I_IMAGECALLBACK)))
Icon.right += infoPtr->iconSize.cx;
Icon.bottom = Icon.top + infoPtr->nItemHeight;
}
@@ -3388,6 +3389,7 @@
return FALSE;
}
lpSubItem->iSubItem = lpLVItem->iSubItem;
+ lpSubItem->hdr.iImage = I_IMAGECALLBACK;
*bChanged = TRUE;
}
@@ -5082,8 +5084,12 @@
}
/* Do we need to enquire about the image? */
- if ((lpLVItem->mask & LVIF_IMAGE) && pItemHdr->iImage == I_IMAGECALLBACK)
+ if ((lpLVItem->mask & LVIF_IMAGE) && pItemHdr->iImage == I_IMAGECALLBACK &&
+ (lpLVItem->iSubItem == 0 || (infoPtr->dwLvExStyle & LVS_EX_SUBITEMIMAGES)))
+ {
dispInfo.item.mask |= LVIF_IMAGE;
+ dispInfo.item.iImage = I_IMAGECALLBACK;
+ }
/* Apps depend on calling back for text if it is NULL or LPSTR_TEXTCALLBACKW */
if ((lpLVItem->mask & LVIF_TEXT) && !is_textW(pItemHdr->pszText))
@@ -5116,7 +5122,12 @@
pItemHdr->iImage = dispInfo.item.iImage;
}
else if (lpLVItem->mask & LVIF_IMAGE)
- lpLVItem->iImage = pItemHdr->iImage;
+ {
+ if(lpLVItem->iSubItem == 0 || (infoPtr->dwLvExStyle & LVS_EX_SUBITEMIMAGES))
+ lpLVItem->iImage = pItemHdr->iImage;
+ else
+ lpLVItem->iImage = 0;
+ }
/* The pszText field */
if (dispInfo.item.mask & LVIF_TEXT)
More information about the wine-patches
mailing list