summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/jni/WebCoreJni.cpp
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2012-01-25 09:20:19 -0800
committerJohn Reck <jreck@google.com>2012-01-30 17:26:58 -0800
commitdea0c131566f424923425970fe5621305d136e5a (patch)
tree0bec1b7dce4e813f367a4952ac9eb3938c3dc163 /Source/WebKit/android/jni/WebCoreJni.cpp
parenta7b12d27ee68ff4de7d56bb494f31bb9ca7c39a0 (diff)
downloadexternal_webkit-dea0c131566f424923425970fe5621305d136e5a.zip
external_webkit-dea0c131566f424923425970fe5621305d136e5a.tar.gz
external_webkit-dea0c131566f424923425970fe5621305d136e5a.tar.bz2
Webkit text selection
Change-Id: I8e2e400940c7c84055aeb2624958aaf47804900b
Diffstat (limited to 'Source/WebKit/android/jni/WebCoreJni.cpp')
-rw-r--r--Source/WebKit/android/jni/WebCoreJni.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/Source/WebKit/android/jni/WebCoreJni.cpp b/Source/WebKit/android/jni/WebCoreJni.cpp
index 10b3e95..65b6d20 100644
--- a/Source/WebKit/android/jni/WebCoreJni.cpp
+++ b/Source/WebKit/android/jni/WebCoreJni.cpp
@@ -26,7 +26,9 @@
#define LOG_TAG "webcoreglue"
#include "config.h"
+#include "IntRect.h"
#include "WebCoreJni.h"
+#include "wtf/Vector.h"
#include "NotImplemented.h"
#include <JNIUtility.h>
@@ -114,4 +116,25 @@ jstring stdStringToJstring(JNIEnv* env, const std::string& str, bool validOnZero
#endif
+jobjectArray intRectVectorToRectArray(JNIEnv* env, Vector<WebCore::IntRect>& rects)
+{
+ jclass rectClass = env->FindClass("android/graphics/Rect");
+ ALOG_ASSERT(rectClass, "Could not find android/graphics/Rect");
+ jmethodID rectInit = env->GetMethodID(rectClass, "<init>", "(IIII)V");
+ ALOG_ASSERT(rectInit, "Could not find init method on Rect");
+ jobjectArray array = env->NewObjectArray(rects.size(), rectClass, 0);
+ ALOG_ASSERT(array, "Could not create a Rect array");
+ for (size_t i = 0; i < rects.size(); i++) {
+ jobject rect = env->NewObject(rectClass, rectInit,
+ rects[i].x(), rects[i].y(),
+ rects[i].maxX(), rects[i].maxY());
+ if (rect) {
+ env->SetObjectArrayElement(array, i, rect);
+ env->DeleteLocalRef(rect);
+ }
+ }
+ env->DeleteLocalRef(rectClass);
+ return array;
+}
+
}