/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
#include "sun_awt_X11_XlibWrapper.h"
#include <string.h>
#include <stdlib.h>
#include <X11/Sunkeysym.h>
#include <jni.h>
#include <jni_util.h>
#include <jlong.h>
#include <sizecalc.h>
#include <awt.h>
#include <jvm.h>
#include <Region.h>
#if defined(DEBUG) || defined(INTERNAL_BUILD)
static void
{
if (lockIsHeldMID == NULL) {
"isAWTLockHeldByCurrentThread", "()Z");
}
}
}
#else
#define AWT_CHECK_HAVE_LOCK()
#endif
/*
* Class: XlibWrapper
* Method: XOpenDisplay
* Signature: (J)J
*/
{
return ptr_to_jlong(dp);
}
}
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: DefaultScreen
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_DefaultScreen (JNIEnv *env, jclass clazz, jlong display) {
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: ScreenOfDisplay
* Signature: (JJ)J
*/
JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_ScreenOfDisplay(JNIEnv *env, jclass clazz, jlong display, jlong screen_number) {
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: DoesBackingStore
* Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_sun_awt_X11_XlibWrapper_DoesBackingStore(JNIEnv *env, jclass clazz, jlong screen) {
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: DisplayWidth
* Signature: (JJ)J
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: DisplayWidthMM
* Signature: (JJ)J
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: DisplayHeight
* Signature: (JJ)J
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: DisplayHeightMM
* Signature: (JJ)J
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: RootWindow
* Signature: (JJ)J
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: ScreenCount
*/
}
/*
* Class: XlibWrapper
* Method: XCreateWindow
* Signature: (JJIIIIIIJJJJ)J
*/
{
}
/*
* Class: XlibWrapper
* Method: XConvertCase
* Signature: (JJJ)V
*/
{
}
/*
* Class: XlibWrapper
* Method: XMapWindow
* Signature: (JJ)V
*/
{
}
/*
* Class: XlibWrapper
* Method: XMapRaised
* Signature: (JJ)V
*/
{
}
/*
* Class: XlibWrapper
* Method: XRaiseWindow
* Signature: (JJ)V
*/
{
}
/*
* Class: XlibWrapper
* Method: XLowerWindow
* Signature: (JJ)V
*/
{
}
/*
* Class: XlibWrapper
* Method: XRestackWindows
* Signature: (JJI)V
*/
{
}
/*
* Class: XlibWrapper
* Method: XConfigureWindow
* Signature: (JJJJ)V
*/
{
}
/*
* Class: XlibWrapper
* Method: XSetInputFocus
* Signature: (JJ)V
*/
{
XSetInputFocus( (Display *)jlong_to_ptr(display),(Window) window, RevertToPointerRoot, CurrentTime);
}
/*
* Class: XlibWrapper
* Method: XSetInputFocus2
* Signature: (JJJ)V
*/
{
}
/*
* Class: XlibWrapper
* Method: XGetInputFocus
* Signature: (JJ)V
*/
{
int revert_to;
return focusOwner;
}
/*
* Class: XlibWrapper
* Method: XDestroyWindow
* Signature: (JJ)V
*/
{
}
{
}
{
}
{
}
{
}
}
/* Workaround for bug 5039226 */
}
/*
* Class: XlibWrapper
* Method: XUnmapWindow
* Signature: (JJ)V
*/
{
}
{
}
(JNIEnv *env, jclass clazz, jlong display, jlong device, jlong bits_to_change, jlong values_for_bits)
{
(unsigned long)bits_to_change,
(unsigned long)values_for_bits);
}
(JNIEnv *env, jclass clazz, jlong display, jlong device, jlong event_type, jlong bits_to_change, jlong values_for_bits)
{
(unsigned int) event_type,
(unsigned long)bits_to_change,
(unsigned long)values_for_bits);
}
{
(int *) jlong_to_ptr(opcode_rtrn),
(int *) jlong_to_ptr(event_rtrn),
(int *) jlong_to_ptr(error_rtrn),
(int *) jlong_to_ptr(major_in_out),
(int *) jlong_to_ptr(minor_in_out));
}
{
return XkbLibraryVersion((int *)jlong_to_ptr(lib_major_in_out), (int *)jlong_to_ptr(lib_minor_in_out));
}
{
(unsigned int) which,
(unsigned int) device_spec);
}
{
(unsigned int) which,
}
{
}
(JNIEnv *env, jclass clazz, jlong xkb, jint keycode, jlong mods, jlong mods_rtrn, jlong keysym_rtrn)
{
Bool b;
(unsigned int *)jlong_to_ptr(mods_rtrn),
//printf("native, input: keycode:0x%0X; mods:0x%0X\n", keycode, mods);
//printf("native, output: keysym:0x%0X; mods:0x%0X\n", *(unsigned int *)jlong_to_ptr(keysym_rtrn), *(unsigned int *)jlong_to_ptr(mods_rtrn));
return b;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XNextEvent
* Signature: (JJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XMaskEvent
* Signature: (JJJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XWindowEvent
* Signature: (JJJJ)V
*/
{
XWindowEvent( (Display *) jlong_to_ptr(display), (Window)window, event_mask, (XEvent *) jlong_to_ptr(event_return));
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XFilterEvent
* Signature: (JJ)Z
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSupportsLocale
* Signature: ()Z
*/
{
return (jboolean)XSupportsLocale();
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSetLocaleModifiers
*/
{
}
if (modifier_list) {
} else {
}
}
/*
* Class: sun_awt_X11_wrappers_XlibWrapper
* Method: XPeekEvent
* Signature: (JJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XMoveResizeWindow
* Signature: (JJIIII)V
*/
(JNIEnv *env, jclass clazz, jlong display, jlong window, jint x , jint y , jint width, jint height) {
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XResizeWindow
* Signature: (JJII)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XMoveWindow
* Signature: (JJII)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSetWindowBackground
* Signature: (JJJ)V
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XFlush
* Signature: (J)V
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSync
* Signature: (JI)V
*/
}
{
(int *) jlong_to_ptr(dest_x_return),
(int *) jlong_to_ptr(dest_y_return),
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: SetProperty
*/
char *cname;
/*
In case there are direct support of UTF-8 declared, use UTF-8 strings.
*/
#ifdef X_HAVE_UTF8_STRING
#else
#endif
} else {
cname = "";
}
#ifdef X_HAVE_UTF8_STRING
XStdICCTextStyle, &tp);
#else
XStdICCTextStyle, &tp);
#endif
XChangeProperty((Display *)jlong_to_ptr(display), window, atom, tp.encoding, tp.format, PropModeReplace, tp.value, tp.nitems);
}
}
#ifdef X_HAVE_UTF8_STRING
#else
#endif
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XChangeProperty
* Signature: (JJJJJJJJJJJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XChangePropertyS
* Signature: (JJJJJJJJJLjava/lang/String;)V
*/
{
if (iscopy) {
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XGetWindowProperty
* Signature: (JJJJJJJJJJJ)J;
*/
{
return XGetWindowProperty((Display*) jlong_to_ptr(display), window, property, long_offset, long_length,
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: GetProperty
*/
{
/* Request status */
int status;
/* Returns of XGetWindowProperty */
int actual_format;
unsigned long nitems;
unsigned long bytes_after;
unsigned char * string;
&string);
return NULL;
}
return NULL;
}
// Memory leak???
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: InternAtom
*/
char *cname;
unsigned long atom;
} else {
cname = "";
}
}
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XCreatePixmapCursor
* Signature: (JJJJJII)J
*/
(JNIEnv *env , jclass clazz, jlong display, jlong source, jlong mask, jlong fore, jlong back, jint x , jint y) {
return (jlong) XCreatePixmapCursor((Display *) jlong_to_ptr(display), (Pixmap) source, (Pixmap) mask,
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XQueryBestCursor
* Signature: (JJIIJJ)Z
*/
(JNIEnv *env, jclass clazz, jlong display, jlong drawable, jint width, jint height, jlong width_return, jlong height_return) {
else return JNI_TRUE;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XFreeCursor
* Signature: (JJ)V
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XQueryPointer
* Signature: (JJJJJJJJJ)Z
*/
(JNIEnv *env, jclass clazz, jlong display, jlong w, jlong root_return, jlong child_return, jlong root_x_return , jlong root_y_return, jlong win_x_return, jlong win_y_return, jlong mask_return) {
Bool b;
(unsigned int *) jlong_to_ptr(mask_return));
else return JNI_FALSE;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XChangeWindowAttributes
* Signature: (JJJJ)V
*/
XChangeWindowAttributes((Display *) jlong_to_ptr(display), (Window) window, (unsigned long) valuemask,
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSetTransientFor
* Signature: (JJJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSetWMHints
* Signature: (JJJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XGetWMHints
* Signature: (JJJ)V
*/
{
} else {
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XGetPointerMapping
* Signature: (JJI)I
*/
{
return XGetPointerMapping((Display*)jlong_to_ptr(display), (unsigned char*) jlong_to_ptr(map), buttonNumber);
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XGetDefault
* Signature: (JJI)I
*/
{
}
}
}
}
return NULL;
}
}
}
// Memory leak???
} else {
return NULL;
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: getScreenOfWindow
* Signature: (JJ)J
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XScreenNumberOfScreen
* Signature: (J)J
*/
{
return -1;
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XIconifyWindow
* Signature: (JJJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XFree
* Signature: (J)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XFree
* Signature: (J)V
*/
{
(const signed char*) storage);
return res;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: ServerVendor
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: VendorRelease
* Signature: (J)I;
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: IsXsunKPBehavior
* Signature: (J)Z;
*/
{
// Xsun without XKB uses keysymarray[2] keysym to determine if it is KP event.
// Otherwise, it is [1] or sometimes [0].
// This sniffer first tries to determine what is a keycode for XK_KP_7
// using XKeysymToKeycode;
// second, in which place in the keysymarray is XK_KP_7
// using XKeycodeToKeysym.
int kc7;
if( !kc7 ) {
// keycode is not defined. Why, it's a reduced keyboard perhaps:
// report arbitrarily false.
return JNI_FALSE;
} else {
//XXX If some Xorg server would put XK_KP_7 in keysymarray[2] as well,
//XXX for yet unknown to me reason, the sniffer would lie.
return JNI_TRUE;
}else{
return JNI_FALSE;
}
}
}
{
int xx;
}
{
int xx;
int32_t i;
// There's no direct way to determine whether the keyboard has
// a kana lock key. From available keyboard mapping tables, it looks
// like only keyboards with the kana lock key can produce keysyms
// for kana characters. So, as an indirect test, we check for those.
keySyms = XGetKeyboardMapping((Display*)jlong_to_ptr(display), minKeyCode, maxKeyCode - minKeyCode + 1, &keySymsPerKeyCode);
kanaCount++;
}
}
// use a (somewhat arbitrary) minimum so we don't get confused by a stray function key
}
if (env) {
}
}
return 0;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: SetToolkitErrorHandler
* Signature: ()J
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSetErrorHandler
* Signature: (J)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: CallErrorHandler
* Signature: (JJJ)I
*/
{
return (*(XErrorHandler)jlong_to_ptr(handler))((Display*) jlong_to_ptr(display), (XErrorEvent*) jlong_to_ptr(event_ptr));
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: PrintXErrorEvent
* Signature: (JJ)V
*/
{
XGetErrorDatabaseText((Display *)jlong_to_ptr(display), "XRequest", buf, "Unknown", msg, sizeof(msg));
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XInternAtoms
*/
(JNIEnv *env, jclass clazz, jlong display, jobjectArray names_arr, jboolean only_if_exists, jlong atoms)
{
int status;
}
}
status = XInternAtoms((Display*)jlong_to_ptr(display), names, name_index, only_if_exists, (Atom*) jlong_to_ptr(atoms));
}
return status;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XGetWindowAttributes
* Signature: (JJJ)I
*/
{
status = XGetWindowAttributes((Display*)jlong_to_ptr(display), window, (XWindowAttributes*) jlong_to_ptr(attr_ptr));
return status;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XGetGeometry
* Signature: (JJJJJJJJJ)I
*/
{
(unsigned int *)jlong_to_ptr(border_width_return),
(unsigned int *)jlong_to_ptr(depth_return));
return status;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XGetWMNormalHints
* Signature: (JJJJ)I
*/
{
(long*) jlong_to_ptr(supplied_return));
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSetWMNormalHints
* Signature: (JJJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XDeleteProperty
* Signature: (JJJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSendEvent
* Signature: (JJZJJ)V
*/
(JNIEnv *env, jclass clazz, jlong display, jlong window, jboolean propagate, jlong event_mask, jlong event)
{
(long) event_mask,
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XQueryTree
* Signature: (JJJJJJ)I
*/
(JNIEnv *env, jclass clazz, jlong display, jlong window, jlong root_return, jlong parent_return, jlong children_return, jlong nchildren_return)
{
(unsigned int*) jlong_to_ptr(nchildren_return));
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: memcpy
* Signature: (JJJ)V
*/
{
}
(JNIEnv *env, jclass clazz, jlong display, jlong window, jint x, jint y, jint width, jint height, jlong flags) {
hints = XAllocSizeHints();
hints->x = x;
hints->y = y;
}
{
(long) vinfo_mask,
(int*) jlong_to_ptr(nitems_return)));
}
{
return ptr_to_jlong(XAllocSizeHints());
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XIconifyWindow
* Signature: (JJJ)V
*/
{
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XAllocColor
* Signature: (JJJ)Z
*/
status = XAllocColor((Display *) jlong_to_ptr(display), (Colormap) colormap, (XColor *) jlong_to_ptr(xcolor));
else return JNI_TRUE;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XCreateBitmapFromData
* Signature: (JJJII)J
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XFreePixmap
* Signature: (JJ)V
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XReparentWindow
* Signature: (JJJII)V
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XConvertSelection
* Signature: (JJJJJJ)V
*/
time);
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XSetSelectionOwner
* Signature: (JJJJ)V
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XGetSelectionOwner
* Signature: (JJ)J
*/
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XGetAtomName
*/
{
char* name;
return NULL;
}
return string;
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XMaxRequestSize
* Signature: (J)J
*/
}
{
return ptr_to_jlong(XAllocWMHints());
}
Java_sun_awt_X11_XlibWrapper_XCreatePixmap(JNIEnv *env, jclass clazz, jlong display, jlong drawable, jint width, jint height, jint depth)
{
}
{
return ptr_to_jlong(XCreateImage((Display*) jlong_to_ptr(display), (Visual*) jlong_to_ptr(visual_ptr),
}
{
return ptr_to_jlong(XCreateGC((Display*) jlong_to_ptr(display), (Drawable)drawable, valuemask, (XGCValues*) jlong_to_ptr(values)));
}
{
// Fix for bug 4903671 :
// We should be careful to not double free the memory pointed to data
// Since we use unsafe to allocate it, we should use unsafe to free it.
// So we should NULL the data pointer before calling XDestroyImage so
// that X does not free the pointer for us.
}
Java_sun_awt_X11_XlibWrapper_XPutImage(JNIEnv *env, jclass clazz, jlong display, jlong drawable, jlong gc, jlong image, jint src_x, jint src_y, jint dest_x, jint dest_y, jint width, jint height)
{
XPutImage((Display*)jlong_to_ptr(display), (Drawable)drawable, (GC) jlong_to_ptr(gc), (XImage*) jlong_to_ptr(image), src_x, src_y,
}
{
}
Java_sun_awt_X11_XlibWrapper_XSetWindowBackgroundPixmap(JNIEnv *env, jclass clazz, jlong display, jlong window, jlong pixmap)
{
}
{
}
Java_sun_awt_X11_XlibWrapper_XGetIconSizes(JNIEnv *env, jclass clazz, jlong display, jlong window, jlong ret_sizes, jlong ret_count)
{
return res;
}
{
return XdbeQueryExtension((Display*) jlong_to_ptr(display), (int *) jlong_to_ptr(major_version_return),
(int *) jlong_to_ptr(minor_version_return));
}
{
char *cname;
} else {
cname = "";
}
}
}
{
if(IsKeypadKey(keysym)) {
return JNI_TRUE;
}
return JNI_FALSE;
}
{
}
{
}
{
}
{
}
{
return XdbeSwapBuffers((Display*) jlong_to_ptr(display), (XdbeSwapInfo *) jlong_to_ptr(swap_info), num_windows);
}
{
}
}
// printf("-------------------------------------VVVV\n");
// printf(" group:0x%0X\n",sr.group);
// printf(" base_group:0x%0X\n",sr.base_group);
// printf(" latched_group:0x%0X\n",sr.latched_group);
// printf(" locked_group:0x%0X\n",sr.locked_group);
// printf(" mods:0x%0X\n",sr.mods);
// printf(" base_mods:0x%0X\n",sr.base_mods);
// printf(" latched_mods:0x%0X\n",sr.latched_mods);
// printf(" locked_mods:0x%0X\n",sr.locked_mods);
// printf(" compat_state:0x%0X\n",sr.compat_state);
// printf(" grab_mods:0x%0X\n",sr.grab_mods);
// printf(" compat_grab_mods:0x%0X\n",sr.compat_grab_mods);
// printf(" lookup_mods:0x%0X\n",sr.lookup_mods);
// printf(" compat_lookup_mods:0x%0X\n",sr.compat_lookup_mods);
// printf(" ptr_buttons:0x%0X\n",sr.ptr_buttons);
// printf("-------------------------------------^^^^\n");
}
return XkbKeycodeToKeysym((Display*) jlong_to_ptr(display), (unsigned int)keycode, (unsigned int)group, (unsigned int)level);
}
}
}
}
/*
* Class: sun_awt_X11_XlibWrapper
* Method: XRefreshKeyboardMapping
* Signature: (J)V
*/
{
}
}
/******************* Secondary loop support ************************************/
/*
* This predicate procedure allows the Toolkit thread to process specific events
* while it is blocked waiting for the event dispatch thread to process
* a SunDropTargetEvent. We need this to prevent deadlock when the client code
* processing SunDropTargetEvent sets or gets the contents of the system
* Toolkit thread to process PropertyNotify or SelectionNotify events.
*/
static Bool
}
while (!exitSecondaryLoop) {
if (XCheckIfEvent((Display*) jlong_to_ptr(display), (XEvent*) jlong_to_ptr(ptr), secondary_loop_event, NULL)) {
return JNI_TRUE;
}
}
return JNI_FALSE;
}
}
/*******************************************************************************/
int32_t i;
}
return NULL;
}
return NULL;
}
}
/*
* If the length of the byte array is 0 just return a null
*/
if (len == 0) {
}
return NULL;
}
/*
* Convert the byte stream into a list of X11 strings
*/
return NULL;
}
if (nstrings == 0) {
}
goto wayout;
}
goto wayout;
}
for (i = 0; i < nstrings; i++) {
(const char *)strings[i]);
goto wayout;
}
goto wayout;
}
goto wayout;
}
}
/*
* Clean up and return
*/
return ret;
}
}
jobject o) {
return ptr_to_jlong(o);
}
if (isCopy) {
}
}
if (isCopy) {
}
}
{
}
{
return status;
}
/*
* Class: XlibWrapper
* Method: SetRectangularShape
*/
{
// If all the params are zeros, the shape must be simply reset.
// Otherwise, the shape may be not rectangular.
&pRect, 256);
}
} else {
// Reset the shape to a rectangular form.
}
}
/*
* Class: XlibWrapper
* Method: SetZOrder
*/
{
if (above == 0) {
} else {
value_mask |= CWSibling;
}
value_mask, &wc );
}
/*
* Class: XlibWrapper
* Method: SetBitmapShape
*/
{
int numrects;
return;
}
return;
}
return;
}
if (!pRect) {
return;
}
/* Note: the values[0] and values[1] are supposed to contain the width
* and height (see XIconInfo.getIntData() for details). So, we do +2.
*/
}