
wt.org.eclipse.swt.gtk.linux.ppc64.4.3.swt.org.eclipse.swt.gtk.linux.ppc64.4.3.source-code.swt.h 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.ppc64 Show documentation
Show all versions of org.eclipse.swt.gtk.linux.ppc64 Show documentation
SWT is an open source widget toolkit for Java designed to provide efficient, portable access to the user-interface facilities of the operating systems on which it is implemented.
The newest version!
/*******************************************************************************
* Copyright (c) 2000, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
/**
* swt.h
*
* This file contains the global macro declarations for the
* SWT library.
*
*/
#ifndef INC_swt_H
#define INC_swt_H
#include "jni.h"
#ifdef __cplusplus
extern "C" {
#endif
extern int IS_JNI_1_2;
#ifndef JNI64
#if __x86_64__
#define JNI64
#endif
#endif
/* 64 bit support */
#ifndef JNI64
/* int/long defines */
#define GetIntLongField GetIntField
#define SetIntLongField SetIntField
#define GetIntLongArrayElements GetIntArrayElements
#define ReleaseIntLongArrayElements ReleaseIntArrayElements
#define GetIntLongArrayRegion GetIntArrayRegion
#define SetIntLongArrayRegion SetIntArrayRegion
#define NewIntLongArray NewIntArray
#define CallStaticIntLongMethod CallStaticIntMethod
#define CallIntLongMethod CallIntMethod
#define CallStaticIntLongMethodV CallStaticIntMethodV
#define CallIntLongMethodV CallIntMethodV
#define jintLongArray jintArray
#define jintLong jint
#define I_J "I"
#define I_JArray "[I"
/* float/double defines */
#define GetFloatDoubleField GetFloatField
#define SetFloatDoubleField SetFloatField
#define GetFloatDoubleArrayElements GetFloatArrayElements
#define ReleaseFloatDoubleArrayElements ReleaseFloatArrayElements
#define GetFloatDoubleArrayRegion GetFloatArrayRegion
#define jfloatDoubleArray jfloatArray
#define jfloatDouble jfloat
#define F_D "F"
#define F_DArray "[F"
#else
/* int/long defines */
#define GetIntLongField GetLongField
#define SetIntLongField SetLongField
#define GetIntLongArrayElements GetLongArrayElements
#define ReleaseIntLongArrayElements ReleaseLongArrayElements
#define GetIntLongArrayRegion GetLongArrayRegion
#define SetIntLongArrayRegion SetLongArrayRegion
#define NewIntLongArray NewLongArray
#define CallStaticIntLongMethod CallStaticLongMethod
#define CallIntLongMethod CallLongMethod
#define CallStaticIntLongMethodV CallStaticLongMethodV
#define CallIntLongMethodV CallLongMethodV
#define jintLongArray jlongArray
#define jintLong jlong
#define I_J "J"
#define I_JArray "[J"
/* float/double defines */
#define GetFloatDoubleField GetDoubleField
#define SetFloatDoubleField SetDoubleField
#define GetFloatDoubleArrayElements GetDoubleArrayElements
#define ReleaseFloatDoubleArrayElements ReleaseDoubleArrayElements
#define GetFloatDoubleArrayRegion GetDoubleArrayRegion
#define jfloatDoubleArray jdoubleArray
#define jfloatDouble jdouble
#define F_D "D"
#define F_DArray "[D"
#endif
#ifdef __APPLE__
#define CALLING_CONVENTION
#define LOAD_FUNCTION(var, name) \
static int initialized = 0; \
static void *var = NULL; \
if (!initialized) { \
CFBundleRef bundle = CFBundleGetBundleWithIdentifier(CFSTR(name##_LIB)); \
if (bundle) var = CFBundleGetFunctionPointerForName(bundle, CFSTR(#name)); \
initialized = 1; \
}
#elif defined (_WIN32) || defined (_WIN32_WCE)
#define CALLING_CONVENTION CALLBACK
#define LOAD_FUNCTION(var, name) \
static int initialized = 0; \
static FARPROC var = NULL; \
if (!initialized) { \
HMODULE hm = LoadLibrary(name##_LIB); \
if (hm) var = GetProcAddress(hm, #name); \
initialized = 1; \
}
#else
#define CALLING_CONVENTION
#ifdef AIX
#define LOAD_FLAGS RTLD_LAZY | RTLD_MEMBER
#else
#define LOAD_FLAGS RTLD_LAZY
#endif
#define LOAD_FUNCTION(var, name) \
static int initialized = 0; \
static void *var = NULL; \
if (!initialized) { \
void* handle = dlopen(name##_LIB, LOAD_FLAGS); \
if (handle) var = dlsym(handle, #name); \
initialized = 1; \
}
#endif
void throwOutOfMemory(JNIEnv *env);
#define CHECK_NULL_VOID(ptr) \
if ((ptr) == NULL) { \
throwOutOfMemory(env); \
return; \
}
#define CHECK_NULL(ptr) \
if ((ptr) == NULL) { \
throwOutOfMemory(env); \
return 0; \
}
#ifdef __cplusplus
}
#endif
#endif /* ifndef INC_swt_H */