342 * Method: setOpaque 343 * Signature: (Z)V 344 */ 345 JNIEXPORT void JNICALL 346 Java_sun_lwawt_macosx_CWrapper_00024NSWindow_setOpaque 347 (JNIEnv *env, jclass cls, jlong windowPtr, jboolean opaque) 348 { 349 JNF_COCOA_ENTER(env); 350 351 AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr); 352 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 353 [window setOpaque:(BOOL)opaque]; 354 }]; 355 356 JNF_COCOA_EXIT(env); 357 } 358 359 /* 360 * Class: sun_lwawt_macosx_CWrapper$NSWindow 361 * Method: setBackgroundColor 362 * Signature: (J)V 363 */ 364 JNIEXPORT void JNICALL 365 Java_sun_lwawt_macosx_CWrapper_00024NSWindow_setBackgroundColor 366 (JNIEnv *env, jclass cls, jlong windowPtr, jlong colorPtr) 367 { 368 JNF_COCOA_ENTER(env); 369 370 AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr); 371 NSColor *color = (NSColor *)jlong_to_ptr(colorPtr); 372 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 373 [window setBackgroundColor:color]; 374 }]; 375 376 JNF_COCOA_EXIT(env); 377 } 378 379 /* 380 * Class: sun_lwawt_macosx_CWrapper$NSWindow 381 * Method: screen 382 * Signature: (J)J 383 */ 384 JNIEXPORT jlong JNICALL 385 Java_sun_lwawt_macosx_CWrapper_00024NSWindow_screen 386 (JNIEnv *env, jclass cls, jlong windowPtr) 387 { 388 __block jlong screenPtr = 0L; 389 390 JNF_COCOA_ENTER(env); 391 392 AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr); 697 698 JNF_COCOA_ENTER(env); 699 700 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 701 NSArray *screens = [NSScreen screens]; 702 for (NSScreen *screen in screens) { 703 NSDictionary *screenInfo = [screen deviceDescription]; 704 NSNumber *screenID = [screenInfo objectForKey:@"NSScreenNumber"]; 705 if ([screenID intValue] == displayID){ 706 CFRetain(screen); // GC 707 screenPtr = ptr_to_jlong(screen); 708 break; 709 } 710 } 711 }]; 712 713 JNF_COCOA_EXIT(env); 714 715 return screenPtr; 716 } 717 718 /* 719 * Class: sun_lwawt_macosx_CWrapper$NSColor 720 * Method: clearColor 721 * Signature: ()J 722 */ 723 JNIEXPORT jlong JNICALL 724 Java_sun_lwawt_macosx_CWrapper_00024NSColor_clearColor 725 (JNIEnv *env, jclass cls) 726 { 727 __block jlong clearColorPtr = 0L; 728 729 JNF_COCOA_ENTER(env); 730 731 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 732 clearColorPtr = ptr_to_jlong([NSColor clearColor]); 733 }]; 734 735 JNF_COCOA_EXIT(env); 736 737 return clearColorPtr; 738 } 739 | 342 * Method: setOpaque 343 * Signature: (Z)V 344 */ 345 JNIEXPORT void JNICALL 346 Java_sun_lwawt_macosx_CWrapper_00024NSWindow_setOpaque 347 (JNIEnv *env, jclass cls, jlong windowPtr, jboolean opaque) 348 { 349 JNF_COCOA_ENTER(env); 350 351 AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr); 352 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 353 [window setOpaque:(BOOL)opaque]; 354 }]; 355 356 JNF_COCOA_EXIT(env); 357 } 358 359 /* 360 * Class: sun_lwawt_macosx_CWrapper$NSWindow 361 * Method: setBackgroundColor 362 * Signature: (JFFFF)V 363 */ 364 JNIEXPORT void JNICALL 365 Java_sun_lwawt_macosx_CWrapper_00024NSWindow_setBackgroundColor 366 (JNIEnv *env, jclass cls, jlong windowPtr, 367 jfloat red, jfloat green, jfloat blue, jfloat alpha) 368 { 369 JNF_COCOA_ENTER(env); 370 371 AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr); 372 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 373 NSColor *color = [NSColor colorWithCalibratedRed:(CGFloat)red 374 green:(CGFloat)green 375 blue:(CGFloat)blue 376 alpha:(CGFloat)alpha]; 377 [window setBackgroundColor:color]; 378 }]; 379 380 JNF_COCOA_EXIT(env); 381 } 382 383 /* 384 * Class: sun_lwawt_macosx_CWrapper$NSWindow 385 * Method: screen 386 * Signature: (J)J 387 */ 388 JNIEXPORT jlong JNICALL 389 Java_sun_lwawt_macosx_CWrapper_00024NSWindow_screen 390 (JNIEnv *env, jclass cls, jlong windowPtr) 391 { 392 __block jlong screenPtr = 0L; 393 394 JNF_COCOA_ENTER(env); 395 396 AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr); 701 702 JNF_COCOA_ENTER(env); 703 704 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 705 NSArray *screens = [NSScreen screens]; 706 for (NSScreen *screen in screens) { 707 NSDictionary *screenInfo = [screen deviceDescription]; 708 NSNumber *screenID = [screenInfo objectForKey:@"NSScreenNumber"]; 709 if ([screenID intValue] == displayID){ 710 CFRetain(screen); // GC 711 screenPtr = ptr_to_jlong(screen); 712 break; 713 } 714 } 715 }]; 716 717 JNF_COCOA_EXIT(env); 718 719 return screenPtr; 720 } |