summaryrefslogtreecommitdiff
path: root/platform/java/mupdf_native.c
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2018-09-05 22:05:17 +0800
committerSebastian Rasmussen <sebras@gmail.com>2018-09-06 20:35:20 +0800
commit69790b1bd81642539a9eb0004818e7fce98d46b6 (patch)
tree67d4bd3ce65ae36db2f54d91e94bf2a1053f3b7a /platform/java/mupdf_native.c
parent62d3d8ca0e406e1a916ebcc8288d17d8058236af (diff)
downloadmupdf-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.c27
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);