465 * Method: makeFirstResponder 466 * Signature: (JJ)V 467 */ 468 JNIEXPORT void JNICALL 469 Java_sun_lwawt_macosx_CWrapper_00024NSWindow_makeFirstResponder 470 (JNIEnv *env, jclass cls, jlong windowPtr, jlong responderPtr) 471 { 472 JNF_COCOA_ENTER(env); 473 474 NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr); 475 NSResponder *responder = (NSResponder *)jlong_to_ptr(responderPtr); 476 [JNFRunLoop performOnMainThread:@selector(makeFirstResponder:) 477 on:window 478 withObject:responder 479 waitUntilDone:NO]; 480 481 JNF_COCOA_EXIT(env); 482 } 483 484 /* 485 * Class: sun_lwawt_macosx_CWrapper$NSView 486 * Method: addSubview 487 * Signature: (JJ)V 488 */ 489 JNIEXPORT void JNICALL 490 Java_sun_lwawt_macosx_CWrapper_00024NSView_addSubview 491 (JNIEnv *env, jclass cls, jlong viewPtr, jlong subviewPtr) 492 { 493 JNF_COCOA_ENTER(env); 494 495 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 496 NSView *subview = (NSView *)jlong_to_ptr(subviewPtr); 497 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 498 [view addSubview:subview]; 499 }]; 500 501 JNF_COCOA_EXIT(env); 502 } 503 504 /* 552 jobject jRect = NULL; 553 554 JNF_COCOA_ENTER(env); 555 556 __block NSRect rect = NSZeroRect; 557 558 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 559 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 560 rect = [view frame]; 561 }]; 562 563 jRect = NSToJavaRect(env, rect); 564 565 JNF_COCOA_EXIT(env); 566 567 return jRect; 568 } 569 570 /* 571 * Class: sun_lwawt_macosx_CWrapper$NSView 572 * Method: enterFullScreenMode 573 * Signature: (J)V 574 */ 575 JNIEXPORT void JNICALL 576 Java_sun_lwawt_macosx_CWrapper_00024NSView_enterFullScreenMode 577 (JNIEnv *env, jclass cls, jlong viewPtr) 578 { 579 JNF_COCOA_ENTER(env); 580 581 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 582 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 583 NSScreen *screen = [[view window] screen]; 584 NSDictionary *opts = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], NSFullScreenModeAllScreens, nil]; 585 [view enterFullScreenMode:screen withOptions:opts]; 586 }]; 587 588 JNF_COCOA_EXIT(env); 589 } 590 591 /* 592 * Class: sun_lwawt_macosx_CWrapper$NSView 593 * Method: exitFullScreenMode 594 * Signature: (J)V 595 */ 596 JNIEXPORT void JNICALL 597 Java_sun_lwawt_macosx_CWrapper_00024NSView_exitFullScreenMode 598 (JNIEnv *env, jclass cls, jlong viewPtr) 599 { 600 JNF_COCOA_ENTER(env); 601 602 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 603 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 604 [view exitFullScreenModeWithOptions:nil]; 605 }]; 606 607 JNF_COCOA_EXIT(env); 608 } 609 610 /* 611 * Class: sun_lwawt_macosx_CWrapper$NSView 612 * Method: window 613 * Signature: (J)J 614 */ 615 JNIEXPORT jlong JNICALL 616 Java_sun_lwawt_macosx_CWrapper_00024NSView_window 617 (JNIEnv *env, jclass cls, jlong viewPtr) 618 { 619 __block jlong windowPtr = 0L; 620 621 JNF_COCOA_ENTER(env); 622 623 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 624 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 625 windowPtr = ptr_to_jlong([view window]); 626 }]; 627 628 JNF_COCOA_EXIT(env); 629 630 return windowPtr; 631 } 696 __block jlong screenPtr = 0L; 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); | 465 * Method: makeFirstResponder 466 * Signature: (JJ)V 467 */ 468 JNIEXPORT void JNICALL 469 Java_sun_lwawt_macosx_CWrapper_00024NSWindow_makeFirstResponder 470 (JNIEnv *env, jclass cls, jlong windowPtr, jlong responderPtr) 471 { 472 JNF_COCOA_ENTER(env); 473 474 NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr); 475 NSResponder *responder = (NSResponder *)jlong_to_ptr(responderPtr); 476 [JNFRunLoop performOnMainThread:@selector(makeFirstResponder:) 477 on:window 478 withObject:responder 479 waitUntilDone:NO]; 480 481 JNF_COCOA_EXIT(env); 482 } 483 484 /* 485 * Class: sun_lwawt_macosx_CWrapper$NSWindow 486 * Method: toggleFullScreen 487 * Signature: (JJ)V 488 */ 489 JNIEXPORT void JNICALL 490 Java_sun_lwawt_macosx_CWrapper_00024NSWindow_toggleFullScreen 491 (JNIEnv *env, jclass cls, jlong windowPtr, jlong senderPtr) 492 { 493 JNF_COCOA_ENTER(env); 494 495 NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr); 496 id sender = (id)jlong_to_ptr(senderPtr); 497 [JNFRunLoop performOnMainThread:@selector(toggleFullScreen:) 498 on:window 499 withObject:sender 500 waitUntilDone:NO]; 501 502 JNF_COCOA_EXIT(env); 503 } 504 505 /* 506 * Class: sun_lwawt_macosx_CWrapper$NSView 507 * Method: addSubview 508 * Signature: (JJ)V 509 */ 510 JNIEXPORT void JNICALL 511 Java_sun_lwawt_macosx_CWrapper_00024NSView_addSubview 512 (JNIEnv *env, jclass cls, jlong viewPtr, jlong subviewPtr) 513 { 514 JNF_COCOA_ENTER(env); 515 516 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 517 NSView *subview = (NSView *)jlong_to_ptr(subviewPtr); 518 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 519 [view addSubview:subview]; 520 }]; 521 522 JNF_COCOA_EXIT(env); 523 } 524 525 /* 573 jobject jRect = NULL; 574 575 JNF_COCOA_ENTER(env); 576 577 __block NSRect rect = NSZeroRect; 578 579 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 580 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 581 rect = [view frame]; 582 }]; 583 584 jRect = NSToJavaRect(env, rect); 585 586 JNF_COCOA_EXIT(env); 587 588 return jRect; 589 } 590 591 /* 592 * Class: sun_lwawt_macosx_CWrapper$NSView 593 * Method: window 594 * Signature: (J)J 595 */ 596 JNIEXPORT jlong JNICALL 597 Java_sun_lwawt_macosx_CWrapper_00024NSView_window 598 (JNIEnv *env, jclass cls, jlong viewPtr) 599 { 600 __block jlong windowPtr = 0L; 601 602 JNF_COCOA_ENTER(env); 603 604 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 605 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 606 windowPtr = ptr_to_jlong([view window]); 607 }]; 608 609 JNF_COCOA_EXIT(env); 610 611 return windowPtr; 612 } 677 __block jlong screenPtr = 0L; 678 679 JNF_COCOA_ENTER(env); 680 681 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 682 NSArray *screens = [NSScreen screens]; 683 for (NSScreen *screen in screens) { 684 NSDictionary *screenInfo = [screen deviceDescription]; 685 NSNumber *screenID = [screenInfo objectForKey:@"NSScreenNumber"]; 686 if ([screenID intValue] == displayID){ 687 CFRetain(screen); // GC 688 screenPtr = ptr_to_jlong(screen); 689 break; 690 } 691 } 692 }]; 693 694 JNF_COCOA_EXIT(env); 695 696 return screenPtr; 697 } 698 699 /* 700 * Class: sun_lwawt_macosx_CWrapper$NSScreen 701 * Method: screens_0 702 * Signature: ()J 703 */ 704 JNIEXPORT jlong JNICALL 705 Java_sun_lwawt_macosx_CWrapper_00024NSScreen_screens_10 706 (JNIEnv *env, jclass cls) 707 { 708 __block jlong screenPtr = 0L; 709 710 JNF_COCOA_ENTER(env); 711 712 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 713 screenPtr = ptr_to_jlong([[[NSScreen screens] objectAtIndex:0] retain]); 714 }]; 715 716 JNF_COCOA_EXIT(env); 717 718 return screenPtr; 719 } 720 721 /* 722 * Class: sun_lwawt_macosx_CWrapper$NSMenu 723 * Method: setMenuBarVisible 724 * Signature: (Z)V 725 */ 726 JNIEXPORT jlong JNICALL 727 Java_sun_lwawt_macosx_CWrapper_00024NSMenu_setMenuBarVisible 728 (JNIEnv *env, jclass cls, jboolean visible) 729 { 730 JNF_COCOA_ENTER(env); 731 732 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 733 [NSMenu setMenuBarVisible: visible]; 734 }]; 735 736 JNF_COCOA_EXIT(env); 737 } 738 739 /* 740 * Class: sun_lwawt_macosx_CWrapper$NSColor 741 * Method: clearColor 742 * Signature: ()J 743 */ 744 JNIEXPORT jlong JNICALL 745 Java_sun_lwawt_macosx_CWrapper_00024NSColor_clearColor 746 (JNIEnv *env, jclass cls) 747 { 748 __block jlong clearColorPtr = 0L; 749 750 JNF_COCOA_ENTER(env); 751 752 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 753 clearColorPtr = ptr_to_jlong([NSColor clearColor]); 754 }]; 755 756 JNF_COCOA_EXIT(env); |