299 lines
11 KiB
C++
299 lines
11 KiB
C++
// Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights
|
|
// reserved. Use of this source code is governed by a BSD-style license that
|
|
// can be found in the LICENSE file.
|
|
|
|
#include "CefDragData_N.h"
|
|
|
|
#include "include/cef_drag_handler.h"
|
|
|
|
#include "jni_scoped_helpers.h"
|
|
#include "jni_util.h"
|
|
#include "write_handler.h"
|
|
|
|
namespace {
|
|
|
|
const char kCefClassName[] = "CefDragData";
|
|
|
|
CefRefPtr<CefDragData> GetSelf(jlong self) {
|
|
return reinterpret_cast<CefDragData*>(self);
|
|
}
|
|
|
|
} // namespace
|
|
|
|
JNIEXPORT jobject JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1Create(JNIEnv* env, jclass cls) {
|
|
CefRefPtr<CefDragData> dragData = CefDragData::Create();
|
|
ScopedJNIDragData jdragData(env, dragData);
|
|
return jdragData.Release();
|
|
}
|
|
|
|
JNIEXPORT jobject JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1Clone(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return nullptr;
|
|
|
|
CefRefPtr<CefDragData> cloneData = dragData->Clone();
|
|
ScopedJNIDragData jcloneData(env, cloneData);
|
|
return jcloneData.Release();
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1Dispose(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
SetCefForJNIObject<CefDragData>(env, obj, nullptr, kCefClassName);
|
|
}
|
|
|
|
JNIEXPORT jboolean JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1IsReadOnly(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return JNI_TRUE;
|
|
return dragData->IsReadOnly() ? JNI_TRUE : JNI_FALSE;
|
|
}
|
|
|
|
JNIEXPORT jboolean JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1IsLink(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return JNI_FALSE;
|
|
return dragData->IsLink() ? JNI_TRUE : JNI_FALSE;
|
|
}
|
|
|
|
JNIEXPORT jboolean JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1IsFragment(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return JNI_FALSE;
|
|
return dragData->IsFragment() ? JNI_TRUE : JNI_FALSE;
|
|
}
|
|
|
|
JNIEXPORT jboolean JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1IsFile(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return JNI_FALSE;
|
|
return dragData->IsFile() ? JNI_TRUE : JNI_FALSE;
|
|
}
|
|
|
|
JNIEXPORT jstring JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetLinkURL(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return nullptr;
|
|
return NewJNIString(env, dragData->GetLinkURL());
|
|
}
|
|
|
|
JNIEXPORT jstring JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetLinkTitle(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return nullptr;
|
|
return NewJNIString(env, dragData->GetLinkTitle());
|
|
}
|
|
|
|
JNIEXPORT jstring JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetLinkMetadata(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return nullptr;
|
|
return NewJNIString(env, dragData->GetLinkMetadata());
|
|
}
|
|
|
|
JNIEXPORT jstring JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetFragmentText(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return nullptr;
|
|
return NewJNIString(env, dragData->GetFragmentText());
|
|
}
|
|
|
|
JNIEXPORT jstring JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetFragmentHtml(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return nullptr;
|
|
return NewJNIString(env, dragData->GetFragmentHtml());
|
|
}
|
|
|
|
JNIEXPORT jstring JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetFragmentBaseURL(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return nullptr;
|
|
return NewJNIString(env, dragData->GetFragmentBaseURL());
|
|
}
|
|
|
|
JNIEXPORT jint JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetFileContents(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jobject jstream) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData || !jstream)
|
|
return 0;
|
|
|
|
CefRefPtr<CefWriteHandler> handler = new WriteHandler(env, jstream);
|
|
return (jint)dragData->GetFileContents(
|
|
CefStreamWriter::CreateForHandler(handler));
|
|
}
|
|
|
|
JNIEXPORT jstring JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetFileName(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return nullptr;
|
|
return NewJNIString(env, dragData->GetFileName());
|
|
}
|
|
|
|
JNIEXPORT jboolean JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetFileNames(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jobject jfileNames) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return JNI_FALSE;
|
|
|
|
std::vector<CefString> fileNames;
|
|
if (!dragData->GetFileNames(fileNames))
|
|
return JNI_FALSE;
|
|
|
|
for (size_t i = 0; i < fileNames.size(); ++i) {
|
|
AddJNIStringToVector(env, jfileNames, fileNames.at(i));
|
|
}
|
|
return JNI_TRUE;
|
|
}
|
|
|
|
JNIEXPORT jboolean JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1GetFilePaths(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jobject jfilePaths) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return JNI_FALSE;
|
|
|
|
std::vector<CefString> filePaths;
|
|
if (!dragData->GetFilePaths(filePaths))
|
|
return JNI_FALSE;
|
|
|
|
for (size_t i = 0; i < filePaths.size(); ++i) {
|
|
AddJNIStringToVector(env, jfilePaths, filePaths.at(i));
|
|
}
|
|
return JNI_TRUE;
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1SetLinkURL(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jstring jurl) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return;
|
|
dragData->SetLinkURL(GetJNIString(env, jurl));
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1SetLinkTitle(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jstring jtitle) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return;
|
|
dragData->SetLinkTitle(GetJNIString(env, jtitle));
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1SetLinkMetadata(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jstring jmetaData) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return;
|
|
dragData->SetLinkMetadata(GetJNIString(env, jmetaData));
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1SetFragmentText(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jstring jfragment) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return;
|
|
dragData->SetFragmentText(GetJNIString(env, jfragment));
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1SetFragmentHtml(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jstring jfragment) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return;
|
|
dragData->SetFragmentHtml(GetJNIString(env, jfragment));
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1SetFragmentBaseURL(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jstring jfragment) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return;
|
|
dragData->SetFragmentBaseURL(GetJNIString(env, jfragment));
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1ResetFileContents(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return;
|
|
dragData->ResetFileContents();
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_org_cef_callback_CefDragData_1N_N_1AddFile(JNIEnv* env,
|
|
jobject obj,
|
|
jlong self,
|
|
jstring jpath,
|
|
jstring jdisplayName) {
|
|
CefRefPtr<CefDragData> dragData = GetSelf(self);
|
|
if (!dragData)
|
|
return;
|
|
dragData->AddFile(GetJNIString(env, jpath), GetJNIString(env, jdisplayName));
|
|
}
|