Improved the stubs.
[wine.git] / graphics / ttydrv / graphics.c
blobaee68104ec833258461b8d4cff90f12af4ed9cb9
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 HAVE_LIBCURSES
77 TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
78 INT row1, col1, row2, col2;
80 TRACE("(%p, %d, %d)\n", dc, x, y);
82 row1 = (dc->w.DCOrgY + XLPTODP(dc, dc->w.CursPosY)) / physDev->cellHeight;
83 col1 = (dc->w.DCOrgX + XLPTODP(dc, dc->w.CursPosX)) / physDev->cellWidth;
84 row2 = (dc->w.DCOrgY + XLPTODP(dc, y)) / physDev->cellHeight;
85 col2 = (dc->w.DCOrgX + XLPTODP(dc, x)) / physDev->cellWidth;
87 if(row1 > row2) {
88 INT tmp = row1;
89 row1 = row2;
90 row2 = tmp;
93 if(col1 > col2) {
94 INT tmp = col1;
95 col1 = col2;
96 col2 = tmp;
99 wmove(physDev->window, row1, col1);
100 if(col1 == col2) {
101 wvline(physDev->window, '|', row2-row1);
102 } else if(row1 == row2) {
103 whline(physDev->window, '-', col2-col1);
104 } else {
105 FIXME("Diagonal line drawing not yet supported\n");
107 wrefresh(physDev->window);
109 dc->w.CursPosX = x;
110 dc->w.CursPosY = y;
112 return TRUE;
113 #else /* defined(HAVE_LIBCURSES) */
114 FIXME("(%p, %d, %d): stub\n", dc, x, y);
116 return TRUE;
117 #endif /* defined(HAVE_LIBCURSES) */
120 /***********************************************************************
121 * TTYDRV_DC_MoveToEx
123 BOOL TTYDRV_DC_MoveToEx(DC *dc, INT x, INT y, LPPOINT pt)
125 TRACE("(%p, %d, %d, %p)\n", dc, x, y, pt);
127 if(pt) {
128 pt->x = dc->w.CursPosX;
129 pt->y = dc->w.CursPosY;
132 dc->w.CursPosX = x;
133 dc->w.CursPosY = y;
135 return TRUE;
138 /***********************************************************************
139 * TTYDRV_DC_PaintRgn
141 BOOL TTYDRV_DC_PaintRgn(DC *dc, HRGN hrgn)
143 FIXME("(%p, 0x%04x): stub\n", dc, hrgn);
145 return TRUE;
148 /***********************************************************************
149 * TTYDRV_DC_Pie
151 BOOL TTYDRV_DC_Pie(DC *dc, INT left, INT top, INT right, INT bottom,
152 INT xstart, INT ystart, INT xend, INT yend)
154 FIXME("(%p, %d, %d, %d, %d, %d, %d, %d, %d): stub\n",
155 dc, left, top, right, bottom, xstart, ystart, xend, yend);
157 return TRUE;
160 /***********************************************************************
161 * TTYDRV_DC_PolyBezier
163 BOOL TTYDRV_DC_PolyBezier(DC *dc, POINT start,
164 const POINT* BezierPoints, DWORD count)
166 FIXME("(%p, {%ld, %ld}, %p, %lu): stub\n",
167 dc, start.x, start.y, BezierPoints, count);
169 return TRUE;
172 /***********************************************************************
173 * TTYDRV_DC_Polygon
175 BOOL TTYDRV_DC_Polygon(DC *dc, const POINT* pt, INT count)
177 FIXME("(%p, %p, %d): stub\n", dc, pt, count);
179 return TRUE;
182 /***********************************************************************
183 * TTYDRV_DC_Polyline
185 BOOL TTYDRV_DC_Polyline(DC *dc, const POINT* pt, INT count)
187 FIXME("(%p, %p, %d): stub\n", dc, pt, count);
189 return TRUE;
192 /***********************************************************************
193 * TTYDRV_DC_PolyPolygon
195 BOOL TTYDRV_DC_PolyPolygon(DC *dc, const POINT* pt, const INT* counts, UINT polygons)
197 FIXME("(%p, %p, %p, %u): stub\n", dc, pt, counts, polygons);
199 return TRUE;
202 /***********************************************************************
203 * TTYDRV_DC_PolyPolyline
205 BOOL TTYDRV_DC_PolyPolyline(DC *dc, const POINT* pt, const DWORD* counts, DWORD polylines)
207 FIXME("(%p, %p, %p, %lu): stub\n", dc, pt, counts, polylines);
209 return TRUE;
212 /***********************************************************************
213 * TTYDRV_DC_Rectangle
215 BOOL TTYDRV_DC_Rectangle(DC *dc, INT left, INT top, INT right, INT bottom)
217 #ifdef HAVE_LIBCURSES
218 TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
219 INT row1, col1, row2, col2;
221 TRACE("(%p, %d, %d, %d, %d)\n", dc, left, top, right, bottom);
223 row1 = (dc->w.DCOrgY + XLPTODP(dc, top)) / physDev->cellHeight;
224 col1 = (dc->w.DCOrgX + XLPTODP(dc, left)) / physDev->cellWidth;
225 row2 = (dc->w.DCOrgY + XLPTODP(dc, bottom)) / physDev->cellHeight;
226 col2 = (dc->w.DCOrgX + XLPTODP(dc, right)) / physDev->cellWidth;
228 if(row1 > row2) {
229 INT tmp = row1;
230 row1 = row2;
231 row2 = tmp;
233 if(col1 > col2) {
234 INT tmp = col1;
235 col1 = col2;
236 col2 = tmp;
239 wmove(physDev->window, row1, col1);
240 whline(physDev->window, '-', col2-col1);
242 wmove(physDev->window, row1, col2);
243 wvline(physDev->window, '|', row2-row1);
245 wmove(physDev->window, row2, col1);
246 whline(physDev->window, '-', col2-col1);
248 wmove(physDev->window, row1, col1);
249 wvline(physDev->window, '|', row2-row1);
251 mvwaddch(physDev->window, row1, col1, '+');
252 mvwaddch(physDev->window, row1, col2, '+');
253 mvwaddch(physDev->window, row2, col2, '+');
254 mvwaddch(physDev->window, row2, col1, '+');
256 wrefresh(physDev->window);
258 return TRUE;
259 #else /* defined(HAVE_LIBCURSES) */
260 FIXME("(%p, %d, %d, %d, %d): stub\n", dc, left, top, right, bottom);
262 return TRUE;
263 #endif /* defined(HAVE_LIBCURSES) */
266 /***********************************************************************
267 * TTYDRV_DC_RoundRect
269 BOOL TTYDRV_DC_RoundRect(DC *dc, INT left, INT top, INT right,
270 INT bottom, INT ell_width, INT ell_height)
272 FIXME("(%p, %d, %d, %d, %d, %d, %d): stub\n",
273 dc, left, top, right, bottom, ell_width, ell_height);
275 return TRUE;
278 /***********************************************************************
279 * TTYDRV_DC_SetBkColor
281 COLORREF TTYDRV_DC_SetBkColor(DC *dc, COLORREF color)
283 COLORREF oldColor;
285 TRACE("(%p, 0x%08lx)\n", dc, color);
287 oldColor = dc->w.backgroundColor;
288 dc->w.backgroundColor = color;
290 return oldColor;
293 /***********************************************************************
294 * TTYDRV_DC_SetPixel
296 COLORREF TTYDRV_DC_SetPixel(DC *dc, INT x, INT y, COLORREF color)
298 #ifdef HAVE_LIBCURSES
299 TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
300 INT row, col;
302 TRACE("(%p, %d, %d, 0x%08lx)\n", dc, x, y, color);
304 row = (dc->w.DCOrgY + XLPTODP(dc, y)) / physDev->cellHeight;
305 col = (dc->w.DCOrgX + XLPTODP(dc, x)) / physDev->cellWidth;
307 mvwaddch(physDev->window, row, col, '.');
308 wrefresh(physDev->window);
310 return RGB(0,0,0); /* FIXME: Always returns black */
311 #else /* defined(HAVE_LIBCURSES) */
312 FIXME("(%p, %d, %d, 0x%08lx): stub\n", dc, x, y, color);
314 return RGB(0,0,0); /* FIXME: Always returns black */
315 #endif /* defined(HAVE_LIBCURSES) */
318 /***********************************************************************
319 * TTYDRV_DC_SetTextColor
321 COLORREF TTYDRV_DC_SetTextColor(DC *dc, COLORREF color)
323 COLORREF oldColor;
325 TRACE("(%p, 0x%08lx)\n", dc, color);
327 oldColor = dc->w.textColor;
328 dc->w.textColor = color;
330 return oldColor;