}
}
-void DrawTextFCentered(int y, int font_nr, char *format, ...)
+void DrawTextF(int x, int y, int font_nr, char *format, ...)
{
char buffer[MAX_OUTPUT_LINESIZE + 1];
va_list ap;
va_end(ap);
if (strlen(buffer) > MAX_OUTPUT_LINESIZE)
- Error(ERR_EXIT, "string too long in DrawTextFCentered() -- aborting");
+ Error(ERR_EXIT, "string too long in DrawTextF() -- aborting");
- DrawText(gfx.sx + (gfx.sxsize - getTextWidth(buffer, font_nr)) / 2,
- gfx.sy + y, buffer, font_nr);
+ DrawText(gfx.sx + x, gfx.sy + y, buffer, font_nr);
}
-void DrawTextF(int x, int y, int font_nr, char *format, ...)
+void DrawTextFCentered(int y, int font_nr, char *format, ...)
{
char buffer[MAX_OUTPUT_LINESIZE + 1];
va_list ap;
va_end(ap);
if (strlen(buffer) > MAX_OUTPUT_LINESIZE)
- Error(ERR_EXIT, "string too long in DrawTextF() -- aborting");
+ Error(ERR_EXIT, "string too long in DrawTextFCentered() -- aborting");
- DrawText(gfx.sx + x, gfx.sy + y, buffer, font_nr);
+ DrawText(gfx.sx + (gfx.sxsize - getTextWidth(buffer, font_nr)) / 2,
+ gfx.sy + y, buffer, font_nr);
+}
+
+void DrawTextS(int x, int y, int font_nr, char *text)
+{
+ DrawText(gfx.sx + x, gfx.sy + y, text, font_nr);
+}
+
+void DrawTextSCentered(int y, int font_nr, char *text)
+{
+ DrawText(gfx.sx + (gfx.sxsize - getTextWidth(text, font_nr)) / 2,
+ gfx.sy + y, text, font_nr);
}
void DrawText(int x, int y, char *text, int font_nr)
{
char c = *text_ptr++;
+ if (c == '\n')
+ c = ' '; /* print space instaed of newline */
+
getFontCharSource(font_nr, c, &src_bitmap, &src_x, &src_y);
if (mask_mode == BLIT_INVERSE) /* special mode for text gadgets */
dst_x += font_width;
}
}
+
+void DrawTextToTextArea(int x, int y, char *text, int font_nr, int line_length,
+ int area_xsize, int area_ysize, int mask_mode)
+{
+ int area_line = 0;
+ int font_height = getFontHeight(font_nr);
+
+ if (text == NULL)
+ return;
+
+ while (*text && area_line < area_ysize)
+ {
+ char buffer[MAX_OUTPUT_LINESIZE + 1];
+ int i;
+
+ for (i=0; i < line_length && *text; i++)
+ if ((buffer[i] = *text++) == '\n')
+ break;
+ buffer[MIN(i, area_xsize)] = '\0';
+
+ DrawTextExt(drawto, x, y + area_line * font_height, buffer, font_nr,
+ mask_mode);
+
+ area_line++;
+ }
+
+ redraw_mask |= REDRAW_FIELD;
+}