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

Print this page

        

@@ -480,10 +480,36 @@
 
 JNF_COCOA_EXIT(env);
 }
 
 /*
+ * Class:     sun_lwawt_macosx_CWrapper$NSWindow
+ * Method:    toggleFullScreen
+ * Signature: (JJ)V
+ */
+JNIEXPORT void JNICALL
+Java_sun_lwawt_macosx_CWrapper_00024NSWindow_toggleFullScreen
+(JNIEnv *env, jclass cls, jlong windowPtr, jlong senderPtr)
+{
+JNF_COCOA_ENTER(env);
+
+    NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
+    SEL toggleFullScreenSelector = @selector(toggleFullScreen:);
+
+    if ([window respondsToSelector:toggleFullScreenSelector]) {
+        id sender = (id)jlong_to_ptr(senderPtr);
+
+        [JNFRunLoop performOnMainThread:toggleFullScreenSelector
+                                     on:window
+                             withObject:sender
+                          waitUntilDone:NO];
+    }
+
+JNF_COCOA_EXIT(env);
+}
+
+/*
  * Class:     sun_lwawt_macosx_CWrapper$NSView
  * Method:    addSubview
  * Signature: (JJ)V
  */
 JNIEXPORT void JNICALL

@@ -567,50 +593,10 @@
     return jRect;
 }
 
 /*
  * Class:     sun_lwawt_macosx_CWrapper$NSView
- * Method:    enterFullScreenMode
- * Signature: (J)V
- */
-JNIEXPORT void JNICALL
-Java_sun_lwawt_macosx_CWrapper_00024NSView_enterFullScreenMode
-(JNIEnv *env, jclass cls, jlong viewPtr)
-{
-JNF_COCOA_ENTER(env);
-
-    NSView *view = (NSView *)jlong_to_ptr(viewPtr);
-    [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
-        NSScreen *screen = [[view window] screen];
-        NSDictionary *opts = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], NSFullScreenModeAllScreens, nil];
-        [view enterFullScreenMode:screen withOptions:opts];
-    }];
-
-JNF_COCOA_EXIT(env);
-}
-
-/*
- * Class:     sun_lwawt_macosx_CWrapper$NSView
- * Method:    exitFullScreenMode
- * Signature: (J)V
- */
-JNIEXPORT void JNICALL
-Java_sun_lwawt_macosx_CWrapper_00024NSView_exitFullScreenMode
-(JNIEnv *env, jclass cls, jlong viewPtr)
-{
-JNF_COCOA_ENTER(env);
-
-    NSView *view = (NSView *)jlong_to_ptr(viewPtr);
-    [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
-        [view exitFullScreenModeWithOptions:nil];
-    }];
-
-JNF_COCOA_EXIT(env);
-}
-
-/*
- * Class:     sun_lwawt_macosx_CWrapper$NSView
  * Method:    window
  * Signature: (J)J
  */
 JNIEXPORT jlong JNICALL
 Java_sun_lwawt_macosx_CWrapper_00024NSView_window

@@ -714,10 +700,50 @@
 
     return screenPtr;
 }
 
 /*
+ * Class:     sun_lwawt_macosx_CWrapper$NSScreen
+ * Method:    screens
+ * Signature: (I)J
+ */
+JNIEXPORT jlong JNICALL
+Java_sun_lwawt_macosx_CWrapper_00024NSScreen_screens
+(JNIEnv *env, jclass cls, jint i)
+{
+    __block jlong screenPtr = 0L;
+
+JNF_COCOA_ENTER(env);
+
+    [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
+        screenPtr = ptr_to_jlong([[[NSScreen screens] objectAtIndex:i] retain]);
+    }];
+
+JNF_COCOA_EXIT(env);
+
+    return screenPtr;
+}
+
+/*
+ * Class:     sun_lwawt_macosx_CWrapper$NSMenu
+ * Method:    setMenuBarVisible
+ * Signature: (Z)V
+ */
+JNIEXPORT jlong JNICALL
+Java_sun_lwawt_macosx_CWrapper_00024NSMenu_setMenuBarVisible
+(JNIEnv *env, jclass cls, jboolean visible)
+{
+JNF_COCOA_ENTER(env);
+
+    [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
+        [NSMenu setMenuBarVisible: visible];
+    }];
+
+JNF_COCOA_EXIT(env);
+}
+
+/*
  * Class:     sun_lwawt_macosx_CWrapper$NSColor
  * Method:    clearColor
  * Signature: ()J
  */
 JNIEXPORT jlong JNICALL