X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/e91f8f2683c327f6f3476a702f5636b2b4547e69..HEAD:/nestedvm.c diff --git a/nestedvm.c b/nestedvm.c index 2bbf4e3..c859526 100644 --- a/nestedvm.c +++ b/nestedvm.c @@ -35,7 +35,7 @@ struct frontend { struct timeval last_time; config_item *cfg; int cfg_which, cfgret; - int ox, oy; + int ox, oy, w, h; }; static frontend *_fe; @@ -61,6 +61,7 @@ void nestedvm_status_bar(void *handle, char *text) void nestedvm_start_draw(void *handle) { frontend *fe = (frontend *)handle; + _call_java(5, 0, fe->w, fe->h); _call_java(4, 1, fe->ox, fe->oy); } @@ -167,6 +168,16 @@ void nestedvm_end_draw(void *handle) _call_java(4,2,0,0); } +char *nestedvm_text_fallback(void *handle, const char *const *strings, + int nstrings) +{ + /* + * We assume Java can cope with any UTF-8 likely to be emitted + * by a puzzle. + */ + return dupstr(strings[0]); +} + const struct drawing_api nestedvm_drawing = { nestedvm_draw_text, nestedvm_draw_rect, @@ -185,6 +196,7 @@ const struct drawing_api nestedvm_drawing = { nestedvm_blitter_load, NULL, NULL, NULL, NULL, NULL, NULL, /* {begin,end}_{doc,page,puzzle} */ NULL, NULL, /* line_width, line_dotted */ + nestedvm_text_fallback, }; int jcallback_key_event(int x, int y, int keyval) @@ -207,6 +219,8 @@ int jcallback_resize(int width, int height) midend_size(fe->me, &x, &y, TRUE); fe->ox = (width - x) / 2; fe->oy = (height - y) / 2; + fe->w = x; + fe->h = y; midend_force_redraw(fe->me); return 0; }