Added ResultFromScode/GetScode (obsolete macros).
[wine/testsucceed.git] / graphics / ttydrv / graphics.c
blob9108c38810806c6e1c9302ceed225abc111520ad
1 /*
2 * TTY DC graphics
4 * Copyright 1999 Patrik Stridvall
5 */
7 #include "config.h"
9 #include "dc.h"
10 #include "debugtools.h"
11 #include "ttydrv.h"
13 DEFAULT_DEBUG_CHANNEL(ttydrv)
15 /***********************************************************************
16 * TTYDRV_DC_Arc
18 BOOL TTYDRV_DC_Arc(DC *dc, INT left, INT top, INT right, INT bottom,
19 INT xstart, INT ystart, INT xend, INT yend)
21 FIXME("(%p, %d, %d, %d, %d, %d, %d, %d, %d): stub\n",
22 dc, left, top, right, bottom, xstart, ystart, xend, yend);
24 return TRUE;
27 /***********************************************************************
28 * TTYDRV_DC_Chord
30 BOOL TTYDRV_DC_Chord(DC *dc, INT left, INT top, INT right, INT bottom,
31 INT xstart, INT ystart, INT xend, INT yend)
33 FIXME("(%p, %d, %d, %d, %d, %d, %d, %d, %d): stub\n",
34 dc, left, top, right, bottom, xstart, ystart, xend, yend);
36 return TRUE;
39 /***********************************************************************
40 * TTYDRV_DC_Ellipse
42 BOOL TTYDRV_DC_Ellipse(DC *dc, INT left, INT top, INT right, INT bottom)
44 FIXME("(%p, %d, %d, %d, %d): stub\n",
45 dc, left, top, right, bottom);
47 return TRUE;
50 /***********************************************************************
51 * TTYDRV_DC_ExtFloodFill
53 BOOL TTYDRV_DC_ExtFloodFill(DC *dc, INT x, INT y,
54 COLORREF color, UINT fillType)
56 FIXME("(%p, %d, %d, 0x%08lx, %u): stub\n", dc, x, y, color, fillType);
58 return TRUE;
61 /***********************************************************************
62 * TTYDRV_DC_GetPixel
64 COLORREF TTYDRV_DC_GetPixel(DC *dc, INT x, INT y)
66 FIXME("(%p, %d, %d): stub\n", dc, x, y);
68 return RGB(0,0,0); /* FIXME: Always returns black */
71 /***********************************************************************
72 * TTYDRV_DC_LineTo
74 BOOL TTYDRV_DC_LineTo(DC *dc, INT x, INT y)
76 #ifdef WINE_CURSES
77 TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
78 INT row1, col1, row2, col2;
80 TRACE("(%p, %d, %d)\n", dc, x, y);
82 if(!physDev->window)
83 return FALSE;
85 row1 = (dc->w.DCOrgY + XLPTODP(dc, dc->w.CursPosY)) / physDev->cellHeight;
86 col1 = (dc->w.DCOrgX + XLPTODP(dc, dc->w.CursPosX)) / physDev->cellWidth;
87 row2 = (dc->w.DCOrgY + XLPTODP(dc, y)) / physDev->cellHeight;
88 col2 = (dc->w.DCOrgX + XLPTODP(dc, x)) / physDev->cellWidth;
90 if(row1 > row2) {
91 INT tmp = row1;
92 row1 = row2;
93 row2 = tmp;
96 if(col1 > col2) {
97 INT tmp = col1;
98 col1 = col2;
99 col2 = tmp;
102 wmove(physDev->window, row1, col1);
103 if(col1 == col2) {
104 wvline(physDev->window, ACS_VLINE, row2-row1);
105 } else if(row1 == row2) {
106 whline(physDev->window, ACS_HLINE, col2-col1);
107 } else {
108 FIXME("Diagonal line drawing not yet supported\n");
110 wrefresh(physDev->window);
112 return TRUE;
113 #else /* defined(WINE_CURSES) */
114 FIXME("(%p, %d, %d): stub\n", dc, x, y);
116 return TRUE;
117 #endif /* defined(WINE_CURSES) */
120 /***********************************************************************
121 * TTYDRV_DC_PaintRgn
123 BOOL TTYDRV_DC_PaintRgn(DC *dc, HRGN hrgn)
125 FIXME("(%p, 0x%04x): stub\n", dc, hrgn);
127 return TRUE;
130 /***********************************************************************
131 * TTYDRV_DC_Pie
133 BOOL TTYDRV_DC_Pie(DC *dc, INT left, INT top, INT right, INT bottom,
134 INT xstart, INT ystart, INT xend, INT yend)
136 FIXME("(%p, %d, %d, %d, %d, %d, %d, %d, %d): stub\n",
137 dc, left, top, right, bottom, xstart, ystart, xend, yend);
139 return TRUE;
142 /***********************************************************************
143 * TTYDRV_DC_Polygon
145 BOOL TTYDRV_DC_Polygon(DC *dc, const POINT* pt, INT count)
147 FIXME("(%p, %p, %d): stub\n", dc, pt, count);
149 return TRUE;
152 /***********************************************************************
153 * TTYDRV_DC_Polyline
155 BOOL TTYDRV_DC_Polyline(DC *dc, const POINT* pt, INT count)
157 FIXME("(%p, %p, %d): stub\n", dc, pt, count);
159 return TRUE;
162 /***********************************************************************
163 * TTYDRV_DC_PolyPolygon
165 BOOL TTYDRV_DC_PolyPolygon(DC *dc, const POINT* pt, const INT* counts, UINT polygons)
167 FIXME("(%p, %p, %p, %u): stub\n", dc, pt, counts, polygons);
169 return TRUE;
172 /***********************************************************************
173 * TTYDRV_DC_PolyPolyline
175 BOOL TTYDRV_DC_PolyPolyline(DC *dc, const POINT* pt, const DWORD* counts, DWORD polylines)
177 FIXME("(%p, %p, %p, %lu): stub\n", dc, pt, counts, polylines);
179 return TRUE;
182 /***********************************************************************
183 * TTYDRV_DC_Rectangle
185 BOOL TTYDRV_DC_Rectangle(DC *dc, INT left, INT top, INT right, INT bottom)
187 #ifdef WINE_CURSES
188 TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
189 INT row1, col1, row2, col2;
191 TRACE("(%p, %d, %d, %d, %d)\n", dc, left, top, right, bottom);
193 if(!physDev->window)
194 return FALSE;
196 row1 = (dc->w.DCOrgY + XLPTODP(dc, top)) / physDev->cellHeight;
197 col1 = (dc->w.DCOrgX + XLPTODP(dc, left)) / physDev->cellWidth;
198 row2 = (dc->w.DCOrgY + XLPTODP(dc, bottom)) / physDev->cellHeight;
199 col2 = (dc->w.DCOrgX + XLPTODP(dc, right)) / physDev->cellWidth;
201 if(row1 > row2) {
202 INT tmp = row1;
203 row1 = row2;
204 row2 = tmp;
206 if(col1 > col2) {
207 INT tmp = col1;
208 col1 = col2;
209 col2 = tmp;
212 wmove(physDev->window, row1, col1);
213 whline(physDev->window, ACS_HLINE, col2-col1);
215 wmove(physDev->window, row1, col2);
216 wvline(physDev->window, ACS_VLINE, row2-row1);
218 wmove(physDev->window, row2, col1);
219 whline(physDev->window, ACS_HLINE, col2-col1);
221 wmove(physDev->window, row1, col1);
222 wvline(physDev->window, ACS_VLINE, row2-row1);
224 mvwaddch(physDev->window, row1, col1, ACS_ULCORNER);
225 mvwaddch(physDev->window, row1, col2, ACS_URCORNER);
226 mvwaddch(physDev->window, row2, col2, ACS_LRCORNER);
227 mvwaddch(physDev->window, row2, col1, ACS_LLCORNER);
229 wrefresh(physDev->window);
231 return TRUE;
232 #else /* defined(WINE_CURSES) */
233 FIXME("(%p, %d, %d, %d, %d): stub\n", dc, left, top, right, bottom);
235 return TRUE;
236 #endif /* defined(WINE_CURSES) */
239 /***********************************************************************
240 * TTYDRV_DC_RoundRect
242 BOOL TTYDRV_DC_RoundRect(DC *dc, INT left, INT top, INT right,
243 INT bottom, INT ell_width, INT ell_height)
245 FIXME("(%p, %d, %d, %d, %d, %d, %d): stub\n",
246 dc, left, top, right, bottom, ell_width, ell_height);
248 return TRUE;
251 /***********************************************************************
252 * TTYDRV_DC_SetBkColor
254 COLORREF TTYDRV_DC_SetBkColor(DC *dc, COLORREF color)
256 COLORREF oldColor;
258 TRACE("(%p, 0x%08lx)\n", dc, color);
260 oldColor = dc->w.backgroundColor;
261 dc->w.backgroundColor = color;
263 return oldColor;
266 /***********************************************************************
267 * TTYDRV_DC_SetPixel
269 COLORREF TTYDRV_DC_SetPixel(DC *dc, INT x, INT y, COLORREF color)
271 #ifdef WINE_CURSES
272 TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
273 INT row, col;
275 TRACE("(%p, %d, %d, 0x%08lx)\n", dc, x, y, color);
277 if(!physDev->window)
278 return FALSE;
280 row = (dc->w.DCOrgY + XLPTODP(dc, y)) / physDev->cellHeight;
281 col = (dc->w.DCOrgX + XLPTODP(dc, x)) / physDev->cellWidth;
283 mvwaddch(physDev->window, row, col, ACS_BULLET);
284 wrefresh(physDev->window);
286 return RGB(0,0,0); /* FIXME: Always returns black */
287 #else /* defined(WINE_CURSES) */
288 FIXME("(%p, %d, %d, 0x%08lx): stub\n", dc, x, y, color);
290 return RGB(0,0,0); /* FIXME: Always returns black */
291 #endif /* defined(WINE_CURSES) */
294 /***********************************************************************
295 * TTYDRV_DC_SetTextColor
297 COLORREF TTYDRV_DC_SetTextColor(DC *dc, COLORREF color)
299 COLORREF oldColor;
301 TRACE("(%p, 0x%08lx)\n", dc, color);
303 oldColor = dc->w.textColor;
304 dc->w.textColor = color;
306 return oldColor;