comctl32: Fix background and text color for DrawStatusText().

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2018-08-12 22:40:00 +03:00 committed by Alexandre Julliard
parent 2225ff4126
commit 824837ec2c
1 changed files with 9 additions and 2 deletions

View File

@ -487,20 +487,24 @@ void WINAPI DrawStatusTextW (HDC hdc, LPCRECT lprc, LPCWSTR text, UINT style)
{ {
RECT r = *lprc; RECT r = *lprc;
UINT border = BDR_SUNKENOUTER; UINT border = BDR_SUNKENOUTER;
COLORREF oldbkcolor;
if (style & SBT_POPOUT) if (style & SBT_POPOUT)
border = BDR_RAISEDOUTER; border = BDR_RAISEDOUTER;
else if (style & SBT_NOBORDERS) else if (style & SBT_NOBORDERS)
border = 0; border = 0;
DrawEdge (hdc, &r, border, BF_RECT|BF_ADJUST); oldbkcolor = SetBkColor (hdc, comctl32_color.clrBtnFace);
DrawEdge (hdc, &r, border, BF_MIDDLE|BF_RECT|BF_ADJUST);
/* now draw text */ /* now draw text */
if (text) { if (text) {
int oldbkmode = SetBkMode (hdc, TRANSPARENT); int oldbkmode = SetBkMode (hdc, TRANSPARENT);
COLORREF oldtextcolor;
UINT align = DT_LEFT; UINT align = DT_LEFT;
int strCnt = 0; int strCnt = 0;
oldtextcolor = SetTextColor (hdc, comctl32_color.clrBtnText);
if (style & SBT_RTLREADING) if (style & SBT_RTLREADING)
FIXME("Unsupported RTL style!\n"); FIXME("Unsupported RTL style!\n");
r.left += 3; r.left += 3;
@ -520,8 +524,11 @@ void WINAPI DrawStatusTextW (HDC hdc, LPCRECT lprc, LPCWSTR text, UINT style)
} while(*text++); } while(*text++);
if (strCnt) DrawTextW (hdc, text - strCnt, -1, &r, align|DT_VCENTER|DT_SINGLELINE|DT_NOPREFIX); if (strCnt) DrawTextW (hdc, text - strCnt, -1, &r, align|DT_VCENTER|DT_SINGLELINE|DT_NOPREFIX);
SetBkMode(hdc, oldbkmode); SetBkMode (hdc, oldbkmode);
SetTextColor (hdc, oldtextcolor);
} }
SetBkColor (hdc, oldbkcolor);
} }