566 (int *) jlong_to_ptr(major_in_out), 567 (int *) jlong_to_ptr(minor_in_out)); 568 return status ? JNI_TRUE : JNI_FALSE; 569 } 570 JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XkbLibraryVersion 571 (JNIEnv *env, jclass clazz, jlong lib_major_in_out, jlong lib_minor_in_out) 572 { 573 Bool status; 574 AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE); 575 *((int *)jlong_to_ptr(lib_major_in_out)) = XkbMajorVersion; 576 *((int *)jlong_to_ptr(lib_minor_in_out)) = XkbMinorVersion; 577 status = XkbLibraryVersion((int *)jlong_to_ptr(lib_major_in_out), 578 (int *)jlong_to_ptr(lib_minor_in_out)); 579 return status ? JNI_TRUE : JNI_FALSE; 580 } 581 582 JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XkbGetMap 583 (JNIEnv *env, jclass clazz, jlong display, jlong which, jlong device_spec) 584 { 585 AWT_CHECK_HAVE_LOCK_RETURN(0); 586 return (jlong) XkbGetMap( (Display *) jlong_to_ptr(display), 587 (unsigned int) which, 588 (unsigned int) device_spec); 589 } 590 JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XkbGetUpdatedMap 591 (JNIEnv *env, jclass clazz, jlong display, jlong which, jlong xkb) 592 { 593 AWT_CHECK_HAVE_LOCK_RETURN(0); 594 return (jlong) XkbGetUpdatedMap( (Display *) jlong_to_ptr(display), 595 (unsigned int) which, 596 (XkbDescPtr) jlong_to_ptr(xkb)); 597 } 598 JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XkbFreeKeyboard 599 (JNIEnv *env, jclass clazz, jlong xkb, jlong which, jboolean free_all) 600 { 601 AWT_CHECK_HAVE_LOCK(); 602 XkbFreeKeyboard(jlong_to_ptr(xkb), (unsigned int)which, free_all); 603 } 604 JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XkbTranslateKeyCode 605 (JNIEnv *env, jclass clazz, jlong xkb, jint keycode, jlong mods, jlong mods_rtrn, jlong keysym_rtrn) 606 { 607 AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE); 608 Bool b; 609 b = XkbTranslateKeyCode((XkbDescPtr)xkb, (unsigned int)keycode, (unsigned int)mods, 610 (unsigned int *)jlong_to_ptr(mods_rtrn), 611 (KeySym *)jlong_to_ptr(keysym_rtrn)); 612 //printf("native, input: keycode:0x%0X; mods:0x%0X\n", keycode, mods); 613 //printf("native, output: keysym:0x%0X; mods:0x%0X\n", 614 // *(unsigned int *)jlong_to_ptr(keysym_rtrn), 615 // *(unsigned int *)jlong_to_ptr(mods_rtrn)); 616 return b ? JNI_TRUE : JNI_FALSE; 617 } 618 JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XkbSetDetectableAutoRepeat 619 (JNIEnv *env, jclass clazz, jlong display, jboolean detectable) 620 { 621 AWT_CHECK_HAVE_LOCK(); 622 XkbSetDetectableAutoRepeat((Display *) jlong_to_ptr(display), detectable, NULL); 623 } 624 /* 625 * Class: sun_awt_X11_XlibWrapper 626 * Method: XNextEvent 627 * Signature: (JJ)V 628 */ 629 2204 jboolean isCopy = JNI_FALSE; 2205 jint * ints = (*env)->GetIntArrayElements(env, array, &isCopy); 2206 memcpy(jlong_to_ptr(dest), ints, size); 2207 if (isCopy) { 2208 (*env)->ReleaseIntArrayElements(env, array, ints, JNI_ABORT); 2209 } 2210 } 2211 2212 JNIEXPORT void JNICALL 2213 Java_sun_awt_X11_XlibWrapper_copyLongArray(JNIEnv *env, 2214 jclass clazz, 2215 jlong dest, jobject array, jint size) { 2216 jboolean isCopy = JNI_FALSE; 2217 jlong * longs = (*env)->GetLongArrayElements(env, array, &isCopy); 2218 memcpy(jlong_to_ptr(dest), longs, size); 2219 if (isCopy) { 2220 (*env)->ReleaseLongArrayElements(env, array, longs, JNI_ABORT); 2221 } 2222 } 2223 2224 JNIEXPORT jint JNICALL 2225 Java_sun_awt_X11_XlibWrapper_XSynchronize(JNIEnv *env, jclass clazz, jlong display, jboolean onoff) 2226 { 2227 return (jint) XSynchronize((Display*)jlong_to_ptr(display), (onoff == JNI_TRUE ? True : False)); 2228 } 2229 2230 JNIEXPORT jboolean JNICALL 2231 Java_sun_awt_X11_XlibWrapper_XShapeQueryExtension 2232 (JNIEnv *env, jclass clazz, jlong display, jlong event_base_return, jlong error_base_return) 2233 { 2234 Bool status; 2235 2236 AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE); 2237 2238 status = XShapeQueryExtension((Display *)jlong_to_ptr(display), 2239 (int *)jlong_to_ptr(event_base_return), (int *)jlong_to_ptr(error_base_return)); 2240 return status ? JNI_TRUE : JNI_FALSE; 2241 } 2242 2243 /* 2244 * Class: XlibWrapper 2245 * Method: SetRectangularShape 2246 */ 2247 | 566 (int *) jlong_to_ptr(major_in_out), 567 (int *) jlong_to_ptr(minor_in_out)); 568 return status ? JNI_TRUE : JNI_FALSE; 569 } 570 JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XkbLibraryVersion 571 (JNIEnv *env, jclass clazz, jlong lib_major_in_out, jlong lib_minor_in_out) 572 { 573 Bool status; 574 AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE); 575 *((int *)jlong_to_ptr(lib_major_in_out)) = XkbMajorVersion; 576 *((int *)jlong_to_ptr(lib_minor_in_out)) = XkbMinorVersion; 577 status = XkbLibraryVersion((int *)jlong_to_ptr(lib_major_in_out), 578 (int *)jlong_to_ptr(lib_minor_in_out)); 579 return status ? JNI_TRUE : JNI_FALSE; 580 } 581 582 JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XkbGetMap 583 (JNIEnv *env, jclass clazz, jlong display, jlong which, jlong device_spec) 584 { 585 AWT_CHECK_HAVE_LOCK_RETURN(0); 586 return ptr_to_jlong(XkbGetMap( (Display *) jlong_to_ptr(display), 587 (unsigned int) which, 588 (unsigned int) device_spec)); 589 } 590 JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XkbGetUpdatedMap 591 (JNIEnv *env, jclass clazz, jlong display, jlong which, jlong xkb) 592 { 593 AWT_CHECK_HAVE_LOCK_RETURN(0); 594 return (jlong) XkbGetUpdatedMap( (Display *) jlong_to_ptr(display), 595 (unsigned int) which, 596 (XkbDescPtr) jlong_to_ptr(xkb)); 597 } 598 JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XkbFreeKeyboard 599 (JNIEnv *env, jclass clazz, jlong xkb, jlong which, jboolean free_all) 600 { 601 AWT_CHECK_HAVE_LOCK(); 602 XkbFreeKeyboard(jlong_to_ptr(xkb), (unsigned int)which, free_all); 603 } 604 JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XkbTranslateKeyCode 605 (JNIEnv *env, jclass clazz, jlong xkb, jint keycode, jlong mods, jlong mods_rtrn, jlong keysym_rtrn) 606 { 607 AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE); 608 Bool b; 609 b = XkbTranslateKeyCode((XkbDescPtr)jlong_to_ptr(xkb), (unsigned int)keycode, (unsigned int)mods, 610 (unsigned int *)jlong_to_ptr(mods_rtrn), 611 (KeySym *)jlong_to_ptr(keysym_rtrn)); 612 //printf("native, input: keycode:0x%0X; mods:0x%0X\n", keycode, mods); 613 //printf("native, output: keysym:0x%0X; mods:0x%0X\n", 614 // *(unsigned int *)jlong_to_ptr(keysym_rtrn), 615 // *(unsigned int *)jlong_to_ptr(mods_rtrn)); 616 return b ? JNI_TRUE : JNI_FALSE; 617 } 618 JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XkbSetDetectableAutoRepeat 619 (JNIEnv *env, jclass clazz, jlong display, jboolean detectable) 620 { 621 AWT_CHECK_HAVE_LOCK(); 622 XkbSetDetectableAutoRepeat((Display *) jlong_to_ptr(display), detectable, NULL); 623 } 624 /* 625 * Class: sun_awt_X11_XlibWrapper 626 * Method: XNextEvent 627 * Signature: (JJ)V 628 */ 629 2204 jboolean isCopy = JNI_FALSE; 2205 jint * ints = (*env)->GetIntArrayElements(env, array, &isCopy); 2206 memcpy(jlong_to_ptr(dest), ints, size); 2207 if (isCopy) { 2208 (*env)->ReleaseIntArrayElements(env, array, ints, JNI_ABORT); 2209 } 2210 } 2211 2212 JNIEXPORT void JNICALL 2213 Java_sun_awt_X11_XlibWrapper_copyLongArray(JNIEnv *env, 2214 jclass clazz, 2215 jlong dest, jobject array, jint size) { 2216 jboolean isCopy = JNI_FALSE; 2217 jlong * longs = (*env)->GetLongArrayElements(env, array, &isCopy); 2218 memcpy(jlong_to_ptr(dest), longs, size); 2219 if (isCopy) { 2220 (*env)->ReleaseLongArrayElements(env, array, longs, JNI_ABORT); 2221 } 2222 } 2223 2224 JNIEXPORT jlong JNICALL 2225 Java_sun_awt_X11_XlibWrapper_XSynchronize(JNIEnv *env, jclass clazz, jlong display, jboolean onoff) 2226 { 2227 return ptr_to_jlong(XSynchronize((Display*)jlong_to_ptr(display), (onoff == JNI_TRUE ? True : False))); 2228 } 2229 2230 JNIEXPORT jboolean JNICALL 2231 Java_sun_awt_X11_XlibWrapper_XShapeQueryExtension 2232 (JNIEnv *env, jclass clazz, jlong display, jlong event_base_return, jlong error_base_return) 2233 { 2234 Bool status; 2235 2236 AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE); 2237 2238 status = XShapeQueryExtension((Display *)jlong_to_ptr(display), 2239 (int *)jlong_to_ptr(event_base_return), (int *)jlong_to_ptr(error_base_return)); 2240 return status ? JNI_TRUE : JNI_FALSE; 2241 } 2242 2243 /* 2244 * Class: XlibWrapper 2245 * Method: SetRectangularShape 2246 */ 2247 |