comctl32: Improve DrawShadowText().

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2016-04-24 16:24:35 +03:00 committed by Alexandre Julliard
parent 57271ca186
commit 2771fd9758
1 changed files with 26 additions and 5 deletions

View File

@ -1592,12 +1592,33 @@ LRESULT WINAPI SetPathWordBreakProc(HWND hwnd, BOOL bSet)
* *
* Draw text with shadow. * Draw text with shadow.
*/ */
int WINAPI DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, RECT *rect, DWORD dwFlags, int WINAPI DrawShadowText(HDC hdc, LPCWSTR text, UINT length, RECT *rect, DWORD flags,
COLORREF crText, COLORREF crShadow, int ixOffset, int iyOffset) COLORREF crText, COLORREF crShadow, int offset_x, int offset_y)
{ {
FIXME("(%p, %s, %d, %p, %d, 0x%08x, 0x%08x, %d, %d): stub\n", hdc, debugstr_w(pszText), cch, rect, dwFlags, int bkmode, ret;
crText, crShadow, ixOffset, iyOffset); COLORREF clr;
return DrawTextW(hdc, pszText, cch, rect, DT_LEFT); RECT r;
FIXME("(%p, %s, %d, %p, 0x%08x, 0x%08x, 0x%08x, %d, %d): semi-stub\n", hdc, debugstr_w(text),
length, rect, flags, crText, crShadow, offset_x, offset_y);
bkmode = SetBkMode(hdc, TRANSPARENT);
clr = SetTextColor(hdc, crShadow);
/* FIXME: for shadow we need to render normally, blur it, and blend with current background. */
r = *rect;
OffsetRect(&r, 1, 1);
DrawTextW(hdc, text, length, &r, flags);
SetTextColor(hdc, crText);
/* with text color on top of a shadow */
ret = DrawTextW(hdc, text, length, rect, flags);
SetTextColor(hdc, clr);
SetBkMode(hdc, bkmode);
return ret;
} }
/*********************************************************************** /***********************************************************************