4 * Copyright 1999 Patrik Stridvall
10 #include "debugtools.h"
13 DEFAULT_DEBUG_CHANNEL(ttydrv
)
15 /***********************************************************************
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
);
27 /***********************************************************************
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
);
39 /***********************************************************************
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
);
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
);
61 /***********************************************************************
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 /***********************************************************************
74 BOOL
TTYDRV_DC_LineTo(DC
*dc
, INT x
, INT y
)
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
;
99 wmove(physDev
->window
, row1
, col1
);
101 wvline(physDev
->window
, '|', row2
-row1
);
102 } else if(row1
== row2
) {
103 whline(physDev
->window
, '-', col2
-col1
);
105 FIXME("Diagonal line drawing not yet supported\n");
107 wrefresh(physDev
->window
);
113 #else /* defined(HAVE_LIBCURSES) */
114 FIXME("(%p, %d, %d): stub\n", dc
, x
, y
);
117 #endif /* defined(HAVE_LIBCURSES) */
120 /***********************************************************************
123 BOOL
TTYDRV_DC_MoveToEx(DC
*dc
, INT x
, INT y
, LPPOINT pt
)
125 TRACE("(%p, %d, %d, %p)\n", dc
, x
, y
, pt
);
128 pt
->x
= dc
->w
.CursPosX
;
129 pt
->y
= dc
->w
.CursPosY
;
138 /***********************************************************************
141 BOOL
TTYDRV_DC_PaintRgn(DC
*dc
, HRGN hrgn
)
143 FIXME("(%p, 0x%04x): stub\n", dc
, hrgn
);
148 /***********************************************************************
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
);
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
);
172 /***********************************************************************
175 BOOL
TTYDRV_DC_Polygon(DC
*dc
, const POINT
* pt
, INT count
)
177 FIXME("(%p, %p, %d): stub\n", dc
, pt
, count
);
182 /***********************************************************************
185 BOOL
TTYDRV_DC_Polyline(DC
*dc
, const POINT
* pt
, INT count
)
187 FIXME("(%p, %p, %d): stub\n", dc
, pt
, count
);
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
);
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
);
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
;
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
);
259 #else /* defined(HAVE_LIBCURSES) */
260 FIXME("(%p, %d, %d, %d, %d): stub\n", dc
, left
, top
, right
, bottom
);
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
);
278 /***********************************************************************
279 * TTYDRV_DC_SetBkColor
281 COLORREF
TTYDRV_DC_SetBkColor(DC
*dc
, COLORREF color
)
285 TRACE("(%p, 0x%08lx)\n", dc
, color
);
287 oldColor
= dc
->w
.backgroundColor
;
288 dc
->w
.backgroundColor
= color
;
293 /***********************************************************************
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
;
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
)
325 TRACE("(%p, 0x%08lx)\n", dc
, color
);
327 oldColor
= dc
->w
.textColor
;
328 dc
->w
.textColor
= color
;