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 SEL toggleFullScreenSelector = @selector(toggleFullScreen:); 497 498 if ([window respondsToSelector:toggleFullScreenSelector]) { 499 id sender = (id)jlong_to_ptr(senderPtr); 500 501 [JNFRunLoop performOnMainThread:toggleFullScreenSelector 502 on:window 503 withObject:sender 504 waitUntilDone:NO]; 505 } 506 507 JNF_COCOA_EXIT(env); 508 } 509 510 /* 511 * Class: sun_lwawt_macosx_CWrapper$NSView 512 * Method: addSubview 513 * Signature: (JJ)V 514 */ 515 JNIEXPORT void JNICALL 516 Java_sun_lwawt_macosx_CWrapper_00024NSView_addSubview 517 (JNIEnv *env, jclass cls, jlong viewPtr, jlong subviewPtr) 518 { 519 JNF_COCOA_ENTER(env); 520 521 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 522 NSView *subview = (NSView *)jlong_to_ptr(subviewPtr); 523 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 524 [view addSubview:subview]; 525 }]; 526 527 JNF_COCOA_EXIT(env); 528 } 529 530 /* 578 jobject jRect = NULL; 579 580 JNF_COCOA_ENTER(env); 581 582 __block NSRect rect = NSZeroRect; 583 584 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 585 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 586 rect = [view frame]; 587 }]; 588 589 jRect = NSToJavaRect(env, rect); 590 591 JNF_COCOA_EXIT(env); 592 593 return jRect; 594 } 595 596 /* 597 * Class: sun_lwawt_macosx_CWrapper$NSView 598 * Method: window 599 * Signature: (J)J 600 */ 601 JNIEXPORT jlong JNICALL 602 Java_sun_lwawt_macosx_CWrapper_00024NSView_window 603 (JNIEnv *env, jclass cls, jlong viewPtr) 604 { 605 __block jlong windowPtr = 0L; 606 607 JNF_COCOA_ENTER(env); 608 609 NSView *view = (NSView *)jlong_to_ptr(viewPtr); 610 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 611 windowPtr = ptr_to_jlong([view window]); 612 }]; 613 614 JNF_COCOA_EXIT(env); 615 616 return windowPtr; 617 } 682 __block jlong screenPtr = 0L; 683 684 JNF_COCOA_ENTER(env); 685 686 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 687 NSArray *screens = [NSScreen screens]; 688 for (NSScreen *screen in screens) { 689 NSDictionary *screenInfo = [screen deviceDescription]; 690 NSNumber *screenID = [screenInfo objectForKey:@"NSScreenNumber"]; 691 if ([screenID intValue] == displayID){ 692 CFRetain(screen); // GC 693 screenPtr = ptr_to_jlong(screen); 694 break; 695 } 696 } 697 }]; 698 699 JNF_COCOA_EXIT(env); 700 701 return screenPtr; 702 } 703 704 /* 705 * Class: sun_lwawt_macosx_CWrapper$NSScreen 706 * Method: screens 707 * Signature: (I)J 708 */ 709 JNIEXPORT jlong JNICALL 710 Java_sun_lwawt_macosx_CWrapper_00024NSScreen_screens 711 (JNIEnv *env, jclass cls, jint i) 712 { 713 __block jlong screenPtr = 0L; 714 715 JNF_COCOA_ENTER(env); 716 717 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 718 screenPtr = ptr_to_jlong([[[NSScreen screens] objectAtIndex:i] retain]); 719 }]; 720 721 JNF_COCOA_EXIT(env); 722 723 return screenPtr; 724 } 725 726 /* 727 * Class: sun_lwawt_macosx_CWrapper$NSMenu 728 * Method: setMenuBarVisible 729 * Signature: (Z)V 730 */ 731 JNIEXPORT jlong JNICALL 732 Java_sun_lwawt_macosx_CWrapper_00024NSMenu_setMenuBarVisible 733 (JNIEnv *env, jclass cls, jboolean visible) 734 { 735 JNF_COCOA_ENTER(env); 736 737 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 738 [NSMenu setMenuBarVisible: visible]; 739 }]; 740 741 JNF_COCOA_EXIT(env); 742 } 743 744 /* 745 * Class: sun_lwawt_macosx_CWrapper$NSColor 746 * Method: clearColor 747 * Signature: ()J 748 */ 749 JNIEXPORT jlong JNICALL 750 Java_sun_lwawt_macosx_CWrapper_00024NSColor_clearColor 751 (JNIEnv *env, jclass cls) 752 { 753 __block jlong clearColorPtr = 0L; 754 755 JNF_COCOA_ENTER(env); 756 757 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 758 clearColorPtr = ptr_to_jlong([NSColor clearColor]); 759 }]; 760 761 JNF_COCOA_EXIT(env); |