From 9fbb365684ef662fc183ebd45c2eeb50f40589b5 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Sun, 27 Dec 2009 10:01:16 +0000 Subject: Introduce, and implement as usefully as I can in all front ends, a new function in the drawing API which permits the display of text from outside basic ASCII. A fallback mechanism is provided so that puzzles can give a list of strings they'd like to display in order of preference and the system will return the best one it can manage; puzzles are required to cope with ASCII-only front ends. [originally from svn r8793] --- gtk.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'gtk.c') diff --git a/gtk.c b/gtk.c index 9c19ab6..0fd351b 100644 --- a/gtk.c +++ b/gtk.c @@ -499,6 +499,17 @@ void gtk_end_draw(void *handle) } } +#ifdef USE_PANGO +char *gtk_text_fallback(void *handle, const char *const *strings, int nstrings) +{ + /* + * We assume Pango can cope with any UTF-8 likely to be emitted + * by a puzzle. + */ + return dupstr(strings[0]); +} +#endif + const struct drawing_api gtk_drawing = { gtk_draw_text, gtk_draw_rect, @@ -516,7 +527,12 @@ const struct drawing_api gtk_drawing = { gtk_blitter_save, gtk_blitter_load, NULL, NULL, NULL, NULL, NULL, NULL, /* {begin,end}_{doc,page,puzzle} */ - NULL, /* line_width */ + NULL, NULL, /* line_width, line_dotted */ +#ifdef USE_PANGO + gtk_text_fallback, +#else + NULL, +#endif }; static void destroy(GtkWidget *widget, gpointer data) -- cgit v1.1