Various cosmetic changes.
[wine] / dlls / ttydrv / objects.c
1 /*
2  * TTY DC objects
3  *
4  * Copyright 1999 Patrik Stridvall
5  */
6
7 #include "config.h"
8
9 #include "bitmap.h"
10 #include "gdi.h"
11 #include "ttydrv.h"
12 #include "debugtools.h"
13
14 DEFAULT_DEBUG_CHANNEL(ttydrv);
15
16 /**********************************************************************/
17
18 extern HBITMAP TTYDRV_DC_BITMAP_SelectObject(DC *dc, HBITMAP hbitmap, BITMAPOBJ *bitmap);
19 extern BOOL TTYDRV_DC_BITMAP_DeleteObject(HBITMAP hbitmap, BITMAPOBJ *bitmap);
20
21
22 /***********************************************************************
23  *              TTYDRV_DC_BRUSH_SelectObject
24  */
25 static HBRUSH TTYDRV_DC_BRUSH_SelectObject(DC *dc, HBRUSH hbrush)
26 {
27   HBRUSH hPreviousBrush;
28
29   TRACE("(%p, 0x%04x)\n", dc, hbrush);
30
31   hPreviousBrush = dc->hBrush;
32   dc->hBrush = hbrush;
33
34   return hPreviousBrush;
35 }
36
37 /***********************************************************************
38  *              TTYDRV_DC_FONT_SelectObject
39  */
40 static HFONT TTYDRV_DC_FONT_SelectObject(DC* dc, HFONT hfont)
41 {
42   TRACE("(%p, 0x%04x)\n", dc, hfont);
43
44   return TRUE; /* Use device font */
45 }
46
47 /***********************************************************************
48  *              TTYDRV_DC_PEN_SelectObject
49  */
50 static HPEN TTYDRV_DC_PEN_SelectObject(DC *dc, HBRUSH hpen)
51 {
52   HPEN hPreviousPen;
53
54   TRACE("(%p, 0x%04x)\n", dc, hpen);
55
56   hPreviousPen = dc->hPen;
57   dc->hPen = hpen;
58
59   return hPreviousPen;
60 }
61
62 /***********************************************************************
63  *              TTYDRV_DC_SelectObject
64  */
65 HGDIOBJ TTYDRV_DC_SelectObject(DC *dc, HGDIOBJ handle)
66 {
67   GDIOBJHDR *ptr = GDI_GetObjPtr(handle, MAGIC_DONTCARE);
68   HGDIOBJ result = 0;
69
70   if(!ptr) return 0;
71
72   switch(GDIMAGIC(ptr->wMagic))
73   {
74     case BITMAP_MAGIC:
75       result = TTYDRV_DC_BITMAP_SelectObject(dc, handle, (BITMAPOBJ *) ptr);
76       break;
77     case BRUSH_MAGIC:
78       result = TTYDRV_DC_BRUSH_SelectObject(dc, handle);
79       break;
80     case FONT_MAGIC:
81       result = TTYDRV_DC_FONT_SelectObject(dc, handle);
82       break;
83     case PEN_MAGIC:
84       result = TTYDRV_DC_PEN_SelectObject(dc, handle);
85       break;
86     case REGION_MAGIC:
87       /* FIXME: Shouldn't be handled here */
88       result = (HGDIOBJ) SelectClipRgn(dc->hSelf, handle);
89       break;
90     default:
91       ERR("handle (0x%04x) has unknown magic (0x%04x)\n",
92                                                 handle, GDIMAGIC(ptr->wMagic));
93   }
94
95   GDI_ReleaseObj(handle);
96     
97   return result;
98 }
99
100 /***********************************************************************
101  *           TTYDRV_DC_DeleteObject
102  */
103 BOOL TTYDRV_DC_DeleteObject(HGDIOBJ handle)
104 {
105   GDIOBJHDR *ptr = GDI_GetObjPtr(handle, MAGIC_DONTCARE);
106   BOOL result;
107   
108   if(!ptr) return FALSE;
109      
110   switch(GDIMAGIC(ptr->wMagic))
111   {
112     case BITMAP_MAGIC:
113       result = TTYDRV_DC_BITMAP_DeleteObject(handle, (BITMAPOBJ *) ptr);
114       break;
115     case BRUSH_MAGIC:
116     case FONT_MAGIC:
117     case PEN_MAGIC:
118     case REGION_MAGIC:
119       result = TRUE;
120       break;
121     default:
122       ERR("handle (0x%04x) has unknown magic (0x%04x)\n",
123                                                 handle, GDIMAGIC(ptr->wMagic));   
124       result = FALSE;
125   }
126
127   GDI_ReleaseObj(handle);
128
129   return result;
130 }