src/macosx/native/sun/awt/CWrapper.m

Print this page




 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);