diff options
author | Sebastian Rasmussen <sebras@gmail.com> | 2018-09-05 22:05:17 +0800 |
---|---|---|
committer | Sebastian Rasmussen <sebras@gmail.com> | 2018-09-06 20:35:20 +0800 |
commit | 69790b1bd81642539a9eb0004818e7fce98d46b6 (patch) | |
tree | 67d4bd3ce65ae36db2f54d91e94bf2a1053f3b7a /platform/java/mupdf_native.c | |
parent | 62d3d8ca0e406e1a916ebcc8288d17d8058236af (diff) | |
download | mupdf-69790b1bd81642539a9eb0004818e7fce98d46b6.tar.xz |
jni: Add interface for snapping selection to structured text.
Diffstat (limited to 'platform/java/mupdf_native.c')
-rw-r--r-- | platform/java/mupdf_native.c | 27 |
1 files changed, 27 insertions, 0 deletions
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 @@ -6463,6 +6463,33 @@ FUN(StructuredText_highlight)(JNIEnv *env, jobject self, jobject jpt1, jobject j } 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) { fz_context *ctx = get_context(env); |