~mdw
/
sgt
/
puzzles
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
GNUstep compatibility: stop using the API feature isFlipped/setFlipped
[sgt/puzzles]
/
nestedvm.c
diff --git
a/nestedvm.c
b/nestedvm.c
index
757b65f
..
c859526
100644
(file)
--- a/
nestedvm.c
+++ b/
nestedvm.c
@@
-35,7
+35,7
@@
struct frontend {
struct timeval last_time;
config_item *cfg;
int cfg_which, cfgret;
struct timeval last_time;
config_item *cfg;
int cfg_which, cfgret;
- int ox, oy;
+ int ox, oy
, w, h
;
};
static frontend *_fe;
};
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;
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);
}
_call_java(4, 1, fe->ox, fe->oy);
}
@@
-167,6
+168,16
@@
void nestedvm_end_draw(void *handle)
_call_java(4,2,0,0);
}
_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,
const struct drawing_api nestedvm_drawing = {
nestedvm_draw_text,
nestedvm_draw_rect,
@@
-184,7
+195,8
@@
const struct drawing_api nestedvm_drawing = {
nestedvm_blitter_save,
nestedvm_blitter_load,
NULL, NULL, NULL, NULL, NULL, NULL, /* {begin,end}_{doc,page,puzzle} */
nestedvm_blitter_save,
nestedvm_blitter_load,
NULL, NULL, NULL, NULL, NULL, NULL, /* {begin,end}_{doc,page,puzzle} */
- NULL, /* line_width */
+ NULL, NULL, /* line_width, line_dotted */
+ nestedvm_text_fallback,
};
int jcallback_key_event(int x, int y, int keyval)
};
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;
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;
}
midend_force_redraw(fe->me);
return 0;
}