diff options
author | John Reck <jreck@google.com> | 2012-01-25 09:20:19 -0800 |
---|---|---|
committer | John Reck <jreck@google.com> | 2012-01-30 17:26:58 -0800 |
commit | dea0c131566f424923425970fe5621305d136e5a (patch) | |
tree | 0bec1b7dce4e813f367a4952ac9eb3938c3dc163 /Source/WebKit/android/jni/WebCoreJni.cpp | |
parent | a7b12d27ee68ff4de7d56bb494f31bb9ca7c39a0 (diff) | |
download | external_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.cpp | 23 |
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; +} + } |