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

Print this page




1128  */
1129 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSynthesizeMouseEnteredExitedEvents
1130 (JNIEnv *env, jclass clazz, jlong windowPtr)
1131 {
1132     JNF_COCOA_ENTER(env);
1133     AWT_ASSERT_NOT_APPKIT_THREAD;
1134 
1135     NSWindow *nsWindow = OBJC(windowPtr);
1136     [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
1137         AWT_ASSERT_APPKIT_THREAD;
1138         AWTWindow *window = (AWTWindow*)[nsWindow delegate];
1139 
1140         [window synthesizeMouseEnteredExitedEvents];
1141     }];
1142 
1143     JNF_COCOA_EXIT(env);
1144 }
1145 
1146 /*
1147  * Class:     sun_lwawt_macosx_CPlatformWindow
1148  * Method:    nativeGetDisplayID_AppKitThread
1149  * Signature: (J)I
1150  */
1151 JNIEXPORT jint JNICALL
1152 Java_sun_lwawt_macosx_CPlatformWindow_nativeGetNSWindowDisplayID
1153 (JNIEnv *env, jclass clazz, jlong windowPtr)
1154 {
1155     __block jint ret; // CGDirectDisplayID
1156 
1157 JNF_COCOA_ENTER(env);
1158 
1159     NSWindow *window = OBJC(windowPtr);
1160 
1161     if ([NSThread isMainThread]) {
1162         ret = (jint)[[AWTWindow getNSWindowDisplayID_AppKitThread: window] intValue];
1163     } else {
1164         [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
1165             ret = (jint)[[AWTWindow getNSWindowDisplayID_AppKitThread: window] intValue];
1166         }];
1167     }
1168 
1169 JNF_COCOA_EXIT(env);
1170 
1171     return ret;
1172 }
1173 
1174 /*
1175  * Class:     sun_lwawt_macosx_CPlatformWindow
1176  * Method:    _toggleFullScreenMode
1177  * Signature: (J)V
1178  */
1179 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow__1toggleFullScreenMode
1180 (JNIEnv *env, jobject peer, jlong windowPtr)
1181 {
1182 JNF_COCOA_ENTER(env);
1183 
1184     NSWindow *nsWindow = OBJC(windowPtr);
1185     SEL toggleFullScreenSelector = @selector(toggleFullScreen:);
1186     if (![nsWindow respondsToSelector:toggleFullScreenSelector]) return;
1187 
1188     [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
1189         [nsWindow performSelector:toggleFullScreenSelector withObject:nil];
1190     }];
1191 
1192 JNF_COCOA_EXIT(env);
1193 }
1194 
1195 JNIEXPORT jboolean JNICALL Java_sun_lwawt_macosx_CMouseInfoPeer_nativeIsWindowUnderMouse
1196 (JNIEnv *env, jclass clazz, jlong windowPtr)
1197 {
1198     __block jboolean underMouse = JNI_FALSE;
1199 
1200 JNF_COCOA_ENTER(env);
1201 AWT_ASSERT_NOT_APPKIT_THREAD;
1202 
1203     NSWindow *nsWindow = OBJC(windowPtr);
1204     [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^() {
1205         AWT_ASSERT_APPKIT_THREAD;
1206 
1207         NSPoint pt = [nsWindow mouseLocationOutsideOfEventStream];
1208         underMouse = [[nsWindow contentView] hitTest:pt] != nil;
1209     }];
1210 
1211 JNF_COCOA_EXIT(env);
1212 
1213     return underMouse;
1214 }
1215 
1216 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSetEnabled
1217 (JNIEnv *env, jclass clazz, jlong windowPtr, jboolean isEnabled)
1218 {
1219 JNF_COCOA_ENTER(env);
1220 
1221     NSWindow *nsWindow = OBJC(windowPtr);
1222     [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
1223         AWTWindow *window = (AWTWindow*)[nsWindow delegate];
1224 
1225         [window setEnabled: isEnabled];
1226     }];
1227 
1228 JNF_COCOA_EXIT(env);
1229 }
1230 
1231 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeDispose
1232 (JNIEnv *env, jclass clazz, jlong windowPtr)
1233 {
1234 JNF_COCOA_ENTER(env);
1235 


1128  */
1129 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSynthesizeMouseEnteredExitedEvents
1130 (JNIEnv *env, jclass clazz, jlong windowPtr)
1131 {
1132     JNF_COCOA_ENTER(env);
1133     AWT_ASSERT_NOT_APPKIT_THREAD;
1134 
1135     NSWindow *nsWindow = OBJC(windowPtr);
1136     [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
1137         AWT_ASSERT_APPKIT_THREAD;
1138         AWTWindow *window = (AWTWindow*)[nsWindow delegate];
1139 
1140         [window synthesizeMouseEnteredExitedEvents];
1141     }];
1142 
1143     JNF_COCOA_EXIT(env);
1144 }
1145 
1146 /*
1147  * Class:     sun_lwawt_macosx_CPlatformWindow




























1148  * Method:    _toggleFullScreenMode
1149  * Signature: (J)V
1150  */
1151 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow__1toggleFullScreenMode
1152 (JNIEnv *env, jobject peer, jlong windowPtr)
1153 {
1154 JNF_COCOA_ENTER(env);
1155 
1156     NSWindow *nsWindow = OBJC(windowPtr);
1157     SEL toggleFullScreenSelector = @selector(toggleFullScreen:);
1158     if (![nsWindow respondsToSelector:toggleFullScreenSelector]) return;
1159 
1160     [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
1161         [nsWindow performSelector:toggleFullScreenSelector withObject:nil];
1162     }];
1163 
1164 JNF_COCOA_EXIT(env);
1165 }
1166 





















1167 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSetEnabled
1168 (JNIEnv *env, jclass clazz, jlong windowPtr, jboolean isEnabled)
1169 {
1170 JNF_COCOA_ENTER(env);
1171 
1172     NSWindow *nsWindow = OBJC(windowPtr);
1173     [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
1174         AWTWindow *window = (AWTWindow*)[nsWindow delegate];
1175 
1176         [window setEnabled: isEnabled];
1177     }];
1178 
1179 JNF_COCOA_EXIT(env);
1180 }
1181 
1182 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeDispose
1183 (JNIEnv *env, jclass clazz, jlong windowPtr)
1184 {
1185 JNF_COCOA_ENTER(env);
1186