Moved all NLS dependent data to the KERNEL resources.
[wine] / graphics / ttydrv / objects.c
1 /*
2  * TTY DC objects
3  *
4  * Copyright 1999 Patrik Stridvall
5  */
6
7 #include "bitmap.h"
8 #include "brush.h"
9 #include "dc.h"
10 #include "font.h"
11 #include "gdi.h"
12 #include "pen.h"
13 #include "ttydrv.h"
14 #include "debugtools.h"
15
16 DEFAULT_DEBUG_CHANNEL(ttydrv)
17
18 /**********************************************************************/
19
20 extern HBITMAP TTYDRV_DC_BITMAP_SelectObject(DC *dc, HBITMAP hbitmap, BITMAPOBJ *bitmap);
21 extern HBRUSH TTYDRV_DC_BRUSH_SelectObject(DC *dc, HBRUSH hbrush, BRUSHOBJ *brush);
22 extern HFONT TTYDRV_DC_FONT_SelectObject(DC* dc, HFONT hfont, FONTOBJ *font);
23 extern HPEN TTYDRV_DC_PEN_SelectObject(DC *dc, HBRUSH hpen, PENOBJ *pen);
24
25 extern BOOL TTYDRV_DC_BITMAP_DeleteObject(HBITMAP hbitmap, BITMAPOBJ *bitmap);
26
27 /***********************************************************************
28  *              TTYDRV_DC_SelectObject
29  */
30 HGDIOBJ TTYDRV_DC_SelectObject(DC *dc, HGDIOBJ handle)
31 {
32   GDIOBJHDR *ptr = GDI_GetObjPtr(handle, MAGIC_DONTCARE);
33   HGDIOBJ result = 0;
34
35   if(!ptr) return 0;
36
37   switch(ptr->wMagic) 
38   {
39     case BITMAP_MAGIC:
40       result = TTYDRV_DC_BITMAP_SelectObject(dc, handle, (BITMAPOBJ *) ptr);
41       break;
42     case BRUSH_MAGIC:
43       result = TTYDRV_DC_BRUSH_SelectObject(dc, handle, (BRUSHOBJ *) ptr);
44       break;
45     case FONT_MAGIC:
46       result = TTYDRV_DC_FONT_SelectObject(dc, handle, (FONTOBJ *) ptr);          
47       break;
48     case PEN_MAGIC:
49       result = TTYDRV_DC_PEN_SelectObject(dc, handle, (PENOBJ *) ptr);
50       break;
51     case REGION_MAGIC:
52       /* FIXME: Shouldn't be handled here */
53       result = (HGDIOBJ) SelectClipRgn(dc->hSelf, handle);
54       break;
55     default:
56       ERR("handle (0x%04x) has unknown magic (0x%04x)\n", handle, ptr->wMagic);
57   }
58
59   GDI_HEAP_UNLOCK(handle);
60     
61   return result;
62 }
63
64 /***********************************************************************
65  *           TTYDRV_DC_DeleteObject
66  */
67 BOOL TTYDRV_DC_DeleteObject(HGDIOBJ handle)
68 {
69   GDIOBJHDR *ptr = GDI_GetObjPtr(handle, MAGIC_DONTCARE);
70   BOOL result;
71   
72   if(!ptr) return FALSE;
73      
74   switch(ptr->wMagic)
75   {
76     case BITMAP_MAGIC:
77       result = TTYDRV_DC_BITMAP_DeleteObject(handle, (BITMAPOBJ *) ptr);
78       break;
79     case BRUSH_MAGIC:
80     case FONT_MAGIC:
81     case PEN_MAGIC:
82     case REGION_MAGIC:
83       result = TRUE;
84       break;
85     default:
86       ERR("handle (0x%04x) has unknown magic (0x%04x)\n", handle, ptr->wMagic);   
87       result = FALSE;
88   }
89
90   GDI_HEAP_UNLOCK(handle);
91
92   return result;
93 }