[PATCH 09/16] Draw LVIS_CUT items with white foreground color
Nikolay Sivov
bunglehead at gmail.com
Fri Nov 27 10:08:59 CST 2009
---
dlls/comctl32/listview.c | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index df48272..bd048bf 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -74,7 +74,6 @@
*
* States
* -- LVIS_ACTIVATING (not currently supported by comctl32.dll version 6.0)
- * -- LVIS_CUT
* -- LVIS_DROPHILITED
* -- LVIS_OVERLAYMASK
*
@@ -4439,7 +4438,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;
+ lvItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED | LVIS_STATEIMAGEMASK | LVIS_CUT;
lvItem.iItem = nItem;
lvItem.iSubItem = nSubItem;
lvItem.state = 0;
@@ -4542,14 +4541,23 @@ static BOOL LISTVIEW_DrawItem(LISTVIEW_INFO *infoPtr, HDC hdc, INT nItem, INT nS
}
}
- /* small icons */
+ /* item icons */
himl = (infoPtr->uView == LV_VIEW_ICON ? infoPtr->himlNormal : infoPtr->himlSmall);
if (himl && lvItem.iImage >= 0 && !IsRectEmpty(&rcIcon))
{
+ UINT style;
+
TRACE("iImage=%d\n", lvItem.iImage);
+
+ if (lvItem.state & (LVIS_SELECTED | LVIS_CUT) && infoPtr->bFocus)
+ style = ILD_SELECTED;
+ else
+ style = ILD_NORMAL;
+
ImageList_DrawEx(himl, lvItem.iImage, hdc, rcIcon.left, rcIcon.top,
- rcIcon.right - rcIcon.left, rcIcon.bottom - rcIcon.top, infoPtr->clrBk, CLR_DEFAULT,
- (lvItem.state & LVIS_SELECTED) && (infoPtr->bFocus) ? ILD_SELECTED : ILD_NORMAL);
+ rcIcon.right - rcIcon.left, rcIcon.bottom - rcIcon.top, infoPtr->clrBk,
+ lvItem.state & LVIS_CUT ? RGB(255, 255, 255) : CLR_DEFAULT,
+ style);
}
/* Don't bother painting item being edited */
--
1.5.6.5
--=-eyLEukV2MGco4bd7/c1H--
More information about the wine-patches
mailing list