wineps: Add support for SetDCBrush/PenColor.

This commit is contained in:
Alexandre Julliard 2011-03-10 20:38:51 +01:00
parent dfaee0a5d7
commit 9285915720
3 changed files with 32 additions and 0 deletions

View File

@ -35,6 +35,9 @@ HBRUSH CDECL PSDRV_SelectBrush( PSDRV_PDEVICE *physDev, HBRUSH hbrush )
TRACE("hbrush = %p\n", hbrush); TRACE("hbrush = %p\n", hbrush);
if (hbrush == GetStockObject( DC_BRUSH ))
logbrush.lbColor = GetDCBrushColor( physDev->hdc );
switch(logbrush.lbStyle) { switch(logbrush.lbStyle) {
case BS_SOLID: case BS_SOLID:
@ -62,6 +65,20 @@ HBRUSH CDECL PSDRV_SelectBrush( PSDRV_PDEVICE *physDev, HBRUSH hbrush )
} }
/***********************************************************************
* SetDCBrushColor (WINEPS.@)
*/
COLORREF CDECL PSDRV_SetDCBrushColor( PSDRV_PDEVICE *physDev, COLORREF color )
{
if (GetCurrentObject( physDev->hdc, OBJ_BRUSH ) == GetStockObject( DC_BRUSH ))
{
PSDRV_CreateColor( physDev, &physDev->brush.color, color );
physDev->brush.set = FALSE;
}
return color;
}
/********************************************************************** /**********************************************************************
* *
* PSDRV_SetBrush * PSDRV_SetBrush

View File

@ -69,6 +69,8 @@ HPEN CDECL PSDRV_SelectPen( PSDRV_PDEVICE *physDev, HPEN hpen )
physDev->pen.width = PSDRV_XWStoDS( physDev, physDev->pen.width ); physDev->pen.width = PSDRV_XWStoDS( physDev, physDev->pen.width );
if(physDev->pen.width < 0) physDev->pen.width = -physDev->pen.width; if(physDev->pen.width < 0) physDev->pen.width = -physDev->pen.width;
} }
if (hpen == GetStockObject( DC_PEN ))
logpen.lopnColor = GetDCPenColor( physDev->hdc );
switch (logpen.lopnStyle & PS_JOIN_MASK) switch (logpen.lopnStyle & PS_JOIN_MASK)
{ {
@ -124,6 +126,17 @@ HPEN CDECL PSDRV_SelectPen( PSDRV_PDEVICE *physDev, HPEN hpen )
} }
/***********************************************************************
* SetDCPenColor (WINEPS.@)
*/
COLORREF CDECL PSDRV_SetDCPenColor( PSDRV_PDEVICE *physDev, COLORREF color )
{
if (GetCurrentObject( physDev->hdc, OBJ_PEN ) == GetStockObject( DC_PEN ))
PSDRV_CreateColor( physDev, &physDev->pen.color, color );
return color;
}
/********************************************************************** /**********************************************************************
* *
* PSDRV_SetPen * PSDRV_SetPen

View File

@ -31,6 +31,8 @@
@ cdecl SelectFont(ptr long long) PSDRV_SelectFont @ cdecl SelectFont(ptr long long) PSDRV_SelectFont
@ cdecl SelectPen(ptr long) PSDRV_SelectPen @ cdecl SelectPen(ptr long) PSDRV_SelectPen
@ cdecl SetBkColor(ptr long) PSDRV_SetBkColor @ cdecl SetBkColor(ptr long) PSDRV_SetBkColor
@ cdecl SetDCBrushColor(ptr long) PSDRV_SetDCBrushColor
@ cdecl SetDCPenColor(ptr long) PSDRV_SetDCPenColor
@ cdecl SetDeviceClipping(ptr long long) PSDRV_SetDeviceClipping @ cdecl SetDeviceClipping(ptr long long) PSDRV_SetDeviceClipping
@ cdecl SetPixel(ptr long long long) PSDRV_SetPixel @ cdecl SetPixel(ptr long long long) PSDRV_SetPixel
@ cdecl SetTextColor(ptr long) PSDRV_SetTextColor @ cdecl SetTextColor(ptr long) PSDRV_SetTextColor