library.webkitgtk_custom.c Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.eclipse.swt.gtk.linux.aarch64 Show documentation
Show all versions of org.eclipse.swt.gtk.linux.aarch64 Show documentation
Standard Widget Toolkit for GTK on aarch64
The newest version!
/*******************************************************************************
* Copyright (c) 2016 Red Hat, Inc. All rights reserved.
* The contents of this file are made available under the terms
* of the GNU Lesser General Public License (LGPL) Version 2.1 that
* accompanies this distribution (lgpl-v21.txt). The LGPL is also
* available at http://www.gnu.org/licenses/lgpl.html. If the version
* of the LGPL at http://www.gnu.org is different to the version of
* the LGPL accompanying this distribution and there is any conflict
* between the two license versions, the terms of the LGPL accompanying
* this distribution shall govern.
*
* Contributors:
* Red Hat, Inc
*******************************************************************************/
/* Manually written code */
//#include // for standard true/false
//#include // For things like GAsyncResult
#include "swt.h"
#include "webkitgtk.h" // For WebKitGTK_LOAD_FUNCTION macro and custom struct definitions.
#include "webkitgtk_custom.h"
#include "webkitgtk_stats.h" // for WebKitGTK_NATIVE_ENTER.
#include "webkitgtk_structs.h" // for struct setters/getters
/**
* This file provides functionality to execute custom functions dynamically in case this is needed.
* Some examples are provided. See dynamic type translation examples in webkitgtk_custom.h
* Careful not to include any webkit includes. All webkit calls should be dynamic.
*/
/**
* Flag to indicate if function pointers are cached or not.
* 0 - not cached, need caching.
* 1 - cached.
* -1 - exception occured.
*/
int fps_cached = 0;
/** Dynamic Function pointer declarations */
// Example of a dynamic function declaration.
// dyn_WebKitJavascriptResult (*fp_webkit_web_view_run_javascript_finish) (dyn_WebKitWebView, GAsyncResult*, GError**);
// // example call of this function would be: fp_webkit_web_view_run_javascript_finish ((jlong) object, result, &error);
#define INIT_WEBKIT_FP(function) \
{ \
WebKitGTK_LOAD_FUNCTION(fp, function); \
if (fp == NULL) { \
goto fail; \
} \
fp_##function = fp; \
}
void initFPs() {
// Example of a dynamic function initilization.
// INIT_WEBKIT_FP(webkit_web_view_run_javascript_finish);
fps_cached = 1;
return;
// fail: // uncomment this if you make use of this function.
fps_cached = -1;
g_critical("SWT webkitgtk_custom.c: Failed to load webkit function pointer(s)");
}
// Example of a function that makes dynamic calls.
//JNIEXPORT void Java_org_eclipse_swt_internal_webkit_WebKitGTK__1swtWebkitEvaluateJavascript
// (JNIEnv *env, jclass that, jlong webkit_handle, jbyteArray javascriptStringBytes, jobject swtjsreturnvalOBJ)
//{
// WebKitGTK_NATIVE_ENTER(env, that, _1swtWebkitEvaluateJavascript_FUNC); // For native stats tool.
//// In your custom function, you should first ensure function pointers are initiated:
// if (fps_cached == 0)
// initFPs();
// if (fps_cached == -1)
// return;
//
//
// WebKitGTK_NATIVE_EXIT(env, that, _1swtWebkitEvaluateJavascript_FUNC);
//}