#include "misc.h"
+// ============================================================================
+// static font variables
+// ============================================================================
+
+boolean text_drawing_enabled = TRUE;
+
+
// ============================================================================
// font functions
// ============================================================================
+void EnableDrawingText(void)
+{
+ text_drawing_enabled = TRUE;
+}
+
+void DisableDrawingText(void)
+{
+ text_drawing_enabled = FALSE;
+}
+
void InitFontInfo(struct FontBitmapInfo *font_bitmap_info, int num_fonts,
int (*select_font_function)(int),
- int (*get_font_from_token_function)(char *))
+ int (*get_font_from_token_function)(char *),
+ char * (*get_token_from_font_function)(int))
{
gfx.num_fonts = num_fonts;
gfx.font_bitmap_info = font_bitmap_info;
gfx.select_font_function = select_font_function;
gfx.get_font_from_token_function = get_font_from_token_function;
+ gfx.get_token_from_font_function = get_token_from_font_function;
}
void FreeFontInfo(struct FontBitmapInfo *font_bitmap_info)
UPDATE_BUSY_STATE();
+ if (!text_drawing_enabled)
+ return;
+
if (window != NULL &&
gfx.draw_init_text &&
gfx.num_fonts > 0 &&
int src_x, src_y;
char *text_ptr = text;
+ if (!text_drawing_enabled)
+ return;
+
+#if DEBUG
+ Debug("font:token", "'%s' / '%s'",
+ gfx.get_token_from_font_function(font_nr), text);
+#endif
+
if (font->bitmap == NULL)
return;
char *word_ptr;
int word_len;
+ if (strEqual(text_ptr, " ")) // special case: force line break
+ buffer_filled = TRUE;
+
// skip leading whitespaces
while (*text_ptr == ' ' || *text_ptr == '\t')
text_ptr++;