4 * Copyright 1999 Patrik Stridvall
14 #include "debugtools.h"
16 DEFAULT_DEBUG_CHANNEL(ttydrv);
18 /**********************************************************************/
20 extern HBITMAP TTYDRV_DC_BITMAP_SelectObject(DC *dc, HBITMAP hbitmap, BITMAPOBJ *bitmap);
21 extern BOOL TTYDRV_DC_BITMAP_DeleteObject(HBITMAP hbitmap, BITMAPOBJ *bitmap);
24 /***********************************************************************
25 * TTYDRV_DC_BRUSH_SelectObject
27 static HBRUSH TTYDRV_DC_BRUSH_SelectObject(DC *dc, HBRUSH hbrush, BRUSHOBJ *brush)
29 HBRUSH hPreviousBrush;
31 TRACE("(%p, 0x%04x, %p)\n", dc, hbrush, brush);
33 hPreviousBrush = dc->w.hBrush;
34 dc->w.hBrush = hbrush;
36 return hPreviousBrush;
39 /***********************************************************************
40 * TTYDRV_DC_FONT_SelectObject
42 static HFONT TTYDRV_DC_FONT_SelectObject(DC* dc, HFONT hfont, FONTOBJ *font)
46 TRACE("(%p, 0x%04x, %p)\n", dc, hfont, font);
48 hPreviousFont = dc->w.hFont;
54 /***********************************************************************
55 * TTYDRV_DC_PEN_SelectObject
57 static HPEN TTYDRV_DC_PEN_SelectObject(DC *dc, HBRUSH hpen, PENOBJ *pen)
61 TRACE("(%p, 0x%04x, %p)\n", dc, hpen, pen);
63 hPreviousPen = dc->w.hPen;
69 /***********************************************************************
70 * TTYDRV_DC_SelectObject
72 HGDIOBJ TTYDRV_DC_SelectObject(DC *dc, HGDIOBJ handle)
74 GDIOBJHDR *ptr = GDI_GetObjPtr(handle, MAGIC_DONTCARE);
79 switch(GDIMAGIC(ptr->wMagic))
82 result = TTYDRV_DC_BITMAP_SelectObject(dc, handle, (BITMAPOBJ *) ptr);
85 result = TTYDRV_DC_BRUSH_SelectObject(dc, handle, (BRUSHOBJ *) ptr);
88 result = TTYDRV_DC_FONT_SelectObject(dc, handle, (FONTOBJ *) ptr);
91 result = TTYDRV_DC_PEN_SelectObject(dc, handle, (PENOBJ *) ptr);
94 /* FIXME: Shouldn't be handled here */
95 result = (HGDIOBJ) SelectClipRgn(dc->hSelf, handle);
98 ERR("handle (0x%04x) has unknown magic (0x%04x)\n",
99 handle, GDIMAGIC(ptr->wMagic));
102 GDI_ReleaseObj(handle);
107 /***********************************************************************
108 * TTYDRV_DC_DeleteObject
110 BOOL TTYDRV_DC_DeleteObject(HGDIOBJ handle)
112 GDIOBJHDR *ptr = GDI_GetObjPtr(handle, MAGIC_DONTCARE);
115 if(!ptr) return FALSE;
117 switch(GDIMAGIC(ptr->wMagic))
120 result = TTYDRV_DC_BITMAP_DeleteObject(handle, (BITMAPOBJ *) ptr);
129 ERR("handle (0x%04x) has unknown magic (0x%04x)\n",
130 handle, GDIMAGIC(ptr->wMagic));
134 GDI_ReleaseObj(handle);