Moved all NLS dependent data to the KERNEL resources.
[wine] / graphics / ttydrv / dc.c
1 /*
2  * TTY DC driver
3  *
4  * Copyright 1999 Patrik Stridvall
5  */
6
7 #include "config.h"
8
9 #include "gdi.h"
10 #include "bitmap.h"
11 #include "dc.h"
12 #include "monitor.h"
13 #include "ttydrv.h"
14 #include "winbase.h"
15 #include "debugtools.h"
16
17 DEFAULT_DEBUG_CHANNEL(ttydrv)
18
19 /**********************************************************************/
20
21 extern DeviceCaps TTYDRV_DC_DevCaps;
22
23 /***********************************************************************
24  *           TTYDRV_DC_CreateDC
25  */
26 BOOL TTYDRV_DC_CreateDC(DC *dc, LPCSTR driver, LPCSTR device,
27                         LPCSTR output, const DEVMODEA *initData)
28 {
29   TTYDRV_PDEVICE *physDev;
30   BITMAPOBJ *bmp;
31
32   TRACE("(%p, %s, %s, %s, %p)\n",
33     dc, debugstr_a(driver), debugstr_a(device), 
34     debugstr_a(output), initData);
35
36   dc->physDev = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
37                           sizeof(TTYDRV_PDEVICE));  
38   if(!dc->physDev) {
39     ERR("Can't allocate physDev\n");
40     return FALSE;
41   }
42   physDev = (TTYDRV_PDEVICE *) dc->physDev;
43   
44   dc->w.devCaps = &TTYDRV_DC_DevCaps;
45
46   if(dc->w.flags & DC_MEMORY){
47     physDev->window = NULL;
48     physDev->cellWidth = 1;
49     physDev->cellHeight = 1;
50
51     TTYDRV_DC_CreateBitmap(dc->w.hBitmap);
52     bmp = (BITMAPOBJ *) GDI_GetObjPtr(dc->w.hBitmap, BITMAP_MAGIC);
53                                    
54     dc->w.bitsPerPixel = bmp->bitmap.bmBitsPixel;
55     
56     dc->w.totalExtent.left   = 0;
57     dc->w.totalExtent.top    = 0;
58     dc->w.totalExtent.right  = bmp->bitmap.bmWidth;
59     dc->w.totalExtent.bottom = bmp->bitmap.bmHeight;
60     dc->w.hVisRgn            = CreateRectRgnIndirect( &dc->w.totalExtent );
61     
62     GDI_HEAP_UNLOCK( dc->w.hBitmap );
63   } else {
64     physDev->window = TTYDRV_GetRootWindow();
65     physDev->cellWidth = TTYDRV_GetCellWidth();
66     physDev->cellHeight = TTYDRV_GetCellHeight();
67     
68     dc->w.bitsPerPixel = MONITOR_GetDepth(&MONITOR_PrimaryMonitor);
69     
70     dc->w.totalExtent.left   = 0;
71     dc->w.totalExtent.top    = 0;
72     dc->w.totalExtent.right  = MONITOR_GetWidth(&MONITOR_PrimaryMonitor);
73     dc->w.totalExtent.bottom = MONITOR_GetHeight(&MONITOR_PrimaryMonitor);
74     dc->w.hVisRgn            = CreateRectRgnIndirect( &dc->w.totalExtent );    
75   }
76
77   return TRUE;
78 }
79
80 /***********************************************************************
81  *           TTYDRV_DC_DeleteDC
82  */
83 BOOL TTYDRV_DC_DeleteDC(DC *dc)
84 {
85   TRACE("(%p)\n", dc);
86
87   HeapFree( GetProcessHeap(), 0, dc->physDev );
88   dc->physDev = NULL;
89   
90   return TRUE;
91 }
92
93 /***********************************************************************
94  *           TTYDRV_DC_Escape
95  */
96 INT TTYDRV_DC_Escape(DC *dc, INT nEscape, INT cbInput,
97                      SEGPTR lpInData, SEGPTR lpOutData)
98 {
99   return 0;
100 }
101