aboutsummaryrefslogtreecommitdiff
path: root/gtk.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2009-12-27 10:01:16 +0000
committerSimon Tatham <anakin@pobox.com>2009-12-27 10:01:16 +0000
commit9fbb365684ef662fc183ebd45c2eeb50f40589b5 (patch)
tree494e77cfaa8402d920bd6615db0a31dbdbc59183 /gtk.c
parent72922b307822874862d943893b10ac75d01689d2 (diff)
downloadpuzzles-9fbb365684ef662fc183ebd45c2eeb50f40589b5.zip
puzzles-9fbb365684ef662fc183ebd45c2eeb50f40589b5.tar.gz
puzzles-9fbb365684ef662fc183ebd45c2eeb50f40589b5.tar.bz2
puzzles-9fbb365684ef662fc183ebd45c2eeb50f40589b5.tar.xz
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]
Diffstat (limited to 'gtk.c')
-rw-r--r--gtk.c18
1 files changed, 17 insertions, 1 deletions
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)