From 69790b1bd81642539a9eb0004818e7fce98d46b6 Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Wed, 5 Sep 2018 22:05:17 +0800 Subject: jni: Add interface for snapping selection to structured text. --- platform/java/mupdf_native.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'platform/java/mupdf_native.c') diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c index 08679fbd..b5586e31 100644 --- a/platform/java/mupdf_native.c +++ b/platform/java/mupdf_native.c @@ -6462,6 +6462,33 @@ FUN(StructuredText_highlight)(JNIEnv *env, jobject self, jobject jpt1, jobject j return to_jQuadArray_safe(ctx, env, hits, n); } +JNIEXPORT jobject JNICALL +FUN(StructuredText_snapSelection)(JNIEnv *env, jobject self, jobject jpt1, jobject jpt2, jint mode) +{ + fz_context *ctx = get_context(env); + fz_stext_page *text = from_StructuredText(env, self); + fz_point pt1 = from_Point(env, jpt1); + fz_point pt2 = from_Point(env, jpt2); + fz_quad quad; + + if (!ctx || !text) return NULL; + + fz_try(ctx) + quad = fz_snap_selection(ctx, text, &pt1, &pt2, mode); + fz_catch(ctx) + { + jni_rethrow(env, ctx); + return NULL; + } + + (*env)->SetFloatField(env, jpt1, fid_Point_x, pt1.x); + (*env)->SetFloatField(env, jpt1, fid_Point_y, pt1.y); + (*env)->SetFloatField(env, jpt2, fid_Point_x, pt2.x); + (*env)->SetFloatField(env, jpt2, fid_Point_y, pt2.y); + + return to_Quad_safe(ctx, env, quad); +} + JNIEXPORT jobject JNICALL FUN(StructuredText_copy)(JNIEnv *env, jobject self, jobject jpt1, jobject jpt2) { -- cgit v1.2.3