comctl32/listview: implement overlay image support
Daniel Jelinski
djelinski1 at gmail.com
Thu Feb 21 16:03:03 CST 2013
-------------- next part --------------
From 61383ec9456da418f0f4a92755434f481a025a88 Mon Sep 17 00:00:00 2001
From: Daniel Jelinski <djelinski1 at gmail.com>
Date: Thu, 21 Feb 2013 21:51:36 +0100
Subject: [PATCH] comctl32/listview: implement overlay image support
note that drawing overlays in imagelist is incomplete - doesn't work
with transparent images
---
dlls/comctl32/listview.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index 83bdf56..2dc0a95 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -75,7 +75,6 @@
* States
* -- LVIS_ACTIVATING (not currently supported by comctl32.dll version 6.0)
* -- LVIS_DROPHILITED
- * -- LVIS_OVERLAYMASK
*
* Styles
* -- LVS_NOLABELWRAP
@@ -4586,7 +4585,7 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, INT nS
lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
if (nSubItem == 0) lvItem.mask |= LVIF_STATE;
if (infoPtr->uView == LV_VIEW_DETAILS) lvItem.mask |= LVIF_INDENT;
- lvItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED | LVIS_STATEIMAGEMASK | LVIS_CUT;
+ lvItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED | LVIS_STATEIMAGEMASK | LVIS_CUT | LVIS_OVERLAYMASK;
lvItem.iItem = nItem;
lvItem.iSubItem = nSubItem;
lvItem.state = 0;
@@ -4707,7 +4706,7 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, INT nS
ImageList_DrawEx(himl, lvItem.iImage, hdc, rcIcon.left, rcIcon.top,
rcIcon.right - rcIcon.left, rcIcon.bottom - rcIcon.top, infoPtr->clrBk,
lvItem.state & LVIS_CUT ? RGB(255, 255, 255) : CLR_DEFAULT,
- style);
+ style | (lvItem.state & LVIS_OVERLAYMASK));
}
/* Don't bother painting item being edited */
--
1.7.5.4
More information about the wine-patches
mailing list