Release 980201
[wine.git] / graphics / win16drv / pen.c
blobc2e545402779513dd1c5556c54569b64d4492fc0
1 /*
2 * GDI pen objects
4 * Copyright 1997 John Harvey
5 */
7 #include "pen.h"
8 #include "color.h"
9 #include "win16drv.h"
10 #include "heap.h"
11 #include "stddebug.h"
12 #include "debug.h"
14 /***********************************************************************
15 * PEN_SelectObject
17 HPEN32 WIN16DRV_PEN_SelectObject( DC * dc, HPEN32 hpen, PENOBJ * pen )
19 WIN16DRV_PDEVICE *physDev = (WIN16DRV_PDEVICE *)dc->physDev;
20 HPEN32 prevHandle = dc->w.hPen;
21 int nSize;
22 LOGPEN16 lPen16;
23 dc->w.hPen = hpen;
24 dprintf_win16drv(stddeb, "In WIN16DRV_PEN_SelectObject\n");
25 lPen16.lopnStyle = pen->logpen.lopnStyle;
26 lPen16.lopnWidth.x = pen->logpen.lopnWidth.x;
27 lPen16.lopnWidth.y = pen->logpen.lopnWidth.y;
28 lPen16.lopnColor = pen->logpen.lopnColor;
30 if ( physDev->PenInfo )
32 dprintf_win16drv(stddeb, "UnRealizing PenInfo\n");
33 nSize = PRTDRV_RealizeObject (physDev->segptrPDEVICE, -DRVOBJ_PEN,
34 physDev->PenInfo,
35 physDev->PenInfo, 0);
37 else
39 nSize = PRTDRV_RealizeObject (physDev->segptrPDEVICE, DRVOBJ_PEN,
40 &lPen16, 0, 0);
41 physDev->PenInfo = SEGPTR_ALLOC( nSize );
44 nSize = PRTDRV_RealizeObject(physDev->segptrPDEVICE, DRVOBJ_PEN,
45 &lPen16,
46 physDev->PenInfo,
47 0);
49 return prevHandle;