[USER32] - Simplify DrawCaret

svn path=/trunk/; revision=54199
This commit is contained in:
Rafal Harabien 2011-10-19 16:17:32 +00:00
parent 51a410c228
commit d03bee3aa9

View file

@ -31,53 +31,56 @@
#include <user32.h>
#include <wine/debug.h>
WINE_DEFAULT_DEBUG_CHANNEL(user32);
/* FUNCTIONS *****************************************************************/
void
DrawCaret(HWND hWnd,
PTHRDCARETINFO CaretInfo)
{
HDC hDC, hComp;
HDC hdc, hdcMem;
HBITMAP hbmOld;
BOOL bDone = FALSE;
hDC = GetDC(hWnd);
if(hDC)
hdc = GetDC(hWnd);
if (!hdc)
{
if(CaretInfo->Bitmap && GetBitmapDimensionEx(CaretInfo->Bitmap, &CaretInfo->Size))
{
hComp = CreateCompatibleDC(hDC);
if(hComp)
{
SelectObject(hComp, CaretInfo->Bitmap);
BitBlt(hDC,
CaretInfo->Pos.x,
CaretInfo->Pos.y,
CaretInfo->Size.cx,
CaretInfo->Size.cy,
hComp,
0,
0,
SRCINVERT);
DeleteDC(hComp);
}
else
PatBlt(hDC,
CaretInfo->Pos.x,
CaretInfo->Pos.y,
CaretInfo->Size.cx,
CaretInfo->Size.cy,
DSTINVERT);
}
else
{
PatBlt(hDC,
CaretInfo->Pos.x,
CaretInfo->Pos.y,
CaretInfo->Size.cx,
CaretInfo->Size.cy,
DSTINVERT);
}
ReleaseDC(hWnd, hDC);
ERR("GetDC failed\n");
return;
}
if(CaretInfo->Bitmap && GetBitmapDimensionEx(CaretInfo->Bitmap, &CaretInfo->Size))
{
hdcMem = CreateCompatibleDC(hdc);
if (hdcMem)
{
hbmOld = SelectObject(hdcMem, CaretInfo->Bitmap);
bDone = BitBlt(hdc,
CaretInfo->Pos.x,
CaretInfo->Pos.y,
CaretInfo->Size.cx,
CaretInfo->Size.cy,
hdcMem,
0,
0,
SRCINVERT);
SelectObject(hdcMem, hbmOld);
DeleteDC(hdcMem);
}
}
if (!bDone)
{
PatBlt(hdc,
CaretInfo->Pos.x,
CaretInfo->Pos.y,
CaretInfo->Size.cx,
CaretInfo->Size.cy,
DSTINVERT);
}
ReleaseDC(hWnd, hdc);
}