예제 #1
0
파일: _xfputc.c 프로젝트: meesokim/z88dk
void _xfputc (char c, char *font, Bool bold)
{


    if (c==12) {
	clg();
	_x_proportional = _y_proportional = 0;
	return;
    }

    if (c==13) {
	_x_proportional = 0;
	//_y_proportional += 8; // compact
	_y_proportional += 9; // normal line spacing
	return;
    }
    if ((_xchar_proportional = _xfindchar( (char) (c - 32), (char *) font)) == -1) return;

    if (_x_proportional + _xchar_proportional[0] >= DisplayWidth(0, 0)) _xfputc (13, font, bold);

    putsprite (SPR_OR, _x_proportional, _y_proportional, _xchar_proportional);
    if (bold) putsprite (SPR_OR, ++_x_proportional, _y_proportional, _xchar_proportional);

    _x_proportional += _xchar_proportional[0];

}
예제 #2
0
파일: XDrawString.c 프로젝트: z88dk/z88dk
void XDrawString(Display *display, Drawable win, GC *gc, int x, int y, char *text, int textlen) {

	struct _XWIN *mywin;
	mywin = (void *) win;

// ======= I have absolutely no idea on why this is necessary ! =======
	//gc = *gc;
// ====================================================================

#ifdef _DEBUG_
	printf (" Drawstring; pick in gc: %u   ...  ", gc);
	printf ("  Font ptr: %u  ", gc->values.font);
#endif


	_x_proportional = mywin->a_x + x;  _y_proportional = mywin->a_y + y;
	for (_X_int1=0; _X_int1<textlen; _xfputc(text[_X_int1++], gc->values.font, False));
}