Improved the TTY driver.
[wine] / graphics / ttydrv / font.c
1 /*
2  * TTY font driver
3  *
4  * Copyright 1999 Patrik Stridvall
5  */
6 #include "dc.h"
7 #include "debugtools.h"
8 #include "font.h"
9 #include "ttydrv.h"
10 #include "wingdi.h"
11
12 DEFAULT_DEBUG_CHANNEL(ttydrv)
13
14 /***********************************************************************
15  *              TTYDRV_DC_GetCharWidth
16  */
17 BOOL TTYDRV_DC_GetCharWidth(DC *dc, UINT firstChar, UINT lastChar,
18                             LPINT buffer)
19 {
20   UINT c;
21   TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
22
23   FIXME("(%p, %u, %u, %p): semistub\n", dc, firstChar, lastChar, buffer);
24
25   for(c=firstChar; c<=lastChar; c++) {
26     buffer[c-firstChar] = physDev->cellWidth;
27   }
28
29   return TRUE;
30 }
31
32 /***********************************************************************
33  *              TTYDRV_DC_GetTextExtentPoint
34  */
35 BOOL TTYDRV_DC_GetTextExtentPoint(DC *dc, LPCSTR str, INT count,
36                                   LPSIZE size)
37 {
38   TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
39
40   TRACE("(%p, %s, %d, %p)\n", dc, debugstr_an(str, count), count, size);
41
42   size->cx = count * physDev->cellWidth;
43   size->cy = physDev->cellHeight;
44
45   return TRUE;
46 }
47
48 /***********************************************************************
49  *              TTYDRV_DC_GetTextMetrics
50  */
51 BOOL TTYDRV_DC_GetTextMetrics(DC *dc, LPTEXTMETRICA lptm)
52 {
53   TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
54
55   TRACE("(%p, %p)\n", dc, lptm);
56
57   lptm->tmHeight = physDev->cellHeight;
58   lptm->tmAscent = 0;
59   lptm->tmDescent = 0;
60   lptm->tmInternalLeading = 0;
61   lptm->tmExternalLeading = 0;
62   lptm->tmAveCharWidth = physDev->cellWidth; 
63   lptm->tmMaxCharWidth = physDev->cellWidth;
64   lptm->tmWeight = FW_MEDIUM;
65   lptm->tmOverhang = 0;
66   lptm->tmDigitizedAspectX = physDev->cellWidth;
67   lptm->tmDigitizedAspectY = physDev->cellHeight;
68   lptm->tmFirstChar = 32;
69   lptm->tmLastChar = 255;
70   lptm->tmDefaultChar = 0;
71   lptm->tmBreakChar = 32;
72   lptm->tmItalic = FALSE;
73   lptm->tmUnderlined = FALSE;
74   lptm->tmStruckOut = FALSE;
75   lptm->tmPitchAndFamily = TMPF_FIXED_PITCH|TMPF_DEVICE;
76   lptm->tmCharSet = ANSI_CHARSET;
77
78   return TRUE;
79 }
80
81 /***********************************************************************
82  *              TTYDRV_DC_FONT_SelectObject
83  */
84 HFONT TTYDRV_DC_FONT_SelectObject(DC* dc, HFONT hfont, FONTOBJ *font)
85 {
86   HFONT hPreviousFont;
87
88   TRACE("(%p, 0x%04x, %p)\n", dc, hfont, font);
89
90   hPreviousFont = dc->w.hFont;
91   dc->w.hFont = hfont;
92
93   return hPreviousFont;
94 }