286 } 287 288 - (void) otherMouseDragged:(NSEvent *)event { 289 [trayIcon deliverJavaMouseEvent: event]; 290 } 291 292 293 @end //AWTTrayIconView 294 //================================================ 295 296 /* 297 * Class: sun_lwawt_macosx_CTrayIcon 298 * Method: nativeCreate 299 * Signature: ()J 300 */ 301 JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CTrayIcon_nativeCreate 302 (JNIEnv *env, jobject peer) { 303 __block AWTTrayIcon *trayIcon = nil; 304 305 JNF_COCOA_ENTER(env); 306 AWT_ASSERT_NOT_APPKIT_THREAD; 307 308 jobject thePeer = JNFNewGlobalRef(env, peer); 309 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 310 trayIcon = [[AWTTrayIcon alloc] initWithPeer:thePeer]; 311 }]; 312 313 JNF_COCOA_EXIT(env); 314 315 return ptr_to_jlong(trayIcon); 316 } 317 318 319 /* 320 * Class: java_awt_TrayIcon 321 * Method: initIDs 322 * Signature: ()V 323 */ 324 JNIEXPORT void JNICALL Java_java_awt_TrayIcon_initIDs 325 (JNIEnv *env, jclass cls) { 326 //Do nothing. 327 } 328 329 /* 330 * Class: sun_lwawt_macosx_CTrayIcon 331 * Method: nativeSetToolTip 332 * Signature: (JLjava/lang/String;)V 333 */ 334 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CTrayIcon_nativeSetToolTip 335 (JNIEnv *env, jobject self, jlong model, jstring jtooltip) { 336 JNF_COCOA_ENTER(env); 337 AWT_ASSERT_NOT_APPKIT_THREAD; 338 339 AWTTrayIcon *icon = jlong_to_ptr(model); 340 NSString *tooltip = JNFJavaToNSString(env, jtooltip); 341 [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){ 342 [icon setTooltip:tooltip]; 343 }]; 344 345 JNF_COCOA_EXIT(env); 346 } 347 348 /* 349 * Class: sun_lwawt_macosx_CTrayIcon 350 * Method: setNativeImage 351 * Signature: (JJZ)V 352 */ 353 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CTrayIcon_setNativeImage 354 (JNIEnv *env, jobject self, jlong model, jlong imagePtr, jboolean autosize) { 355 JNF_COCOA_ENTER(env); 356 AWT_ASSERT_NOT_APPKIT_THREAD; 357 358 AWTTrayIcon *icon = jlong_to_ptr(model); 359 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 360 [icon setImage:jlong_to_ptr(imagePtr) sizing:autosize]; 361 }]; 362 363 JNF_COCOA_EXIT(env); 364 } 365 366 JNIEXPORT jobject JNICALL 367 Java_sun_lwawt_macosx_CTrayIcon_nativeGetIconLocation 368 (JNIEnv *env, jobject self, jlong model) { 369 jobject jpt = NULL; 370 371 JNF_COCOA_ENTER(env); 372 AWT_ASSERT_NOT_APPKIT_THREAD; 373 374 __block NSPoint pt = NSZeroPoint; 375 AWTTrayIcon *icon = jlong_to_ptr(model); 376 [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ 377 AWT_ASSERT_APPKIT_THREAD; 378 379 NSPoint loc = [icon getLocationOnScreen]; 380 pt = ConvertNSScreenPoint(env, loc); 381 }]; 382 383 jpt = NSToJavaPoint(env, pt); 384 385 JNF_COCOA_EXIT(env); 386 387 return jpt; 388 } | 286 } 287 288 - (void) otherMouseDragged:(NSEvent *)event { 289 [trayIcon deliverJavaMouseEvent: event]; 290 } 291 292 293 @end //AWTTrayIconView 294 //================================================ 295 296 /* 297 * Class: sun_lwawt_macosx_CTrayIcon 298 * Method: nativeCreate 299 * Signature: ()J 300 */ 301 JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CTrayIcon_nativeCreate 302 (JNIEnv *env, jobject peer) { 303 __block AWTTrayIcon *trayIcon = nil; 304 305 JNF_COCOA_ENTER(env); 306 307 jobject thePeer = JNFNewGlobalRef(env, peer); 308 [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ 309 trayIcon = [[AWTTrayIcon alloc] initWithPeer:thePeer]; 310 }]; 311 312 JNF_COCOA_EXIT(env); 313 314 return ptr_to_jlong(trayIcon); 315 } 316 317 318 /* 319 * Class: java_awt_TrayIcon 320 * Method: initIDs 321 * Signature: ()V 322 */ 323 JNIEXPORT void JNICALL Java_java_awt_TrayIcon_initIDs 324 (JNIEnv *env, jclass cls) { 325 //Do nothing. 326 } 327 328 /* 329 * Class: sun_lwawt_macosx_CTrayIcon 330 * Method: nativeSetToolTip 331 * Signature: (JLjava/lang/String;)V 332 */ 333 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CTrayIcon_nativeSetToolTip 334 (JNIEnv *env, jobject self, jlong model, jstring jtooltip) { 335 JNF_COCOA_ENTER(env); 336 337 AWTTrayIcon *icon = jlong_to_ptr(model); 338 NSString *tooltip = JNFJavaToNSString(env, jtooltip); 339 [ThreadUtilities performOnMainThreadWaiting:NO block:^(){ 340 [icon setTooltip:tooltip]; 341 }]; 342 343 JNF_COCOA_EXIT(env); 344 } 345 346 /* 347 * Class: sun_lwawt_macosx_CTrayIcon 348 * Method: setNativeImage 349 * Signature: (JJZ)V 350 */ 351 JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CTrayIcon_setNativeImage 352 (JNIEnv *env, jobject self, jlong model, jlong imagePtr, jboolean autosize) { 353 JNF_COCOA_ENTER(env); 354 355 AWTTrayIcon *icon = jlong_to_ptr(model); 356 [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ 357 [icon setImage:jlong_to_ptr(imagePtr) sizing:autosize]; 358 }]; 359 360 JNF_COCOA_EXIT(env); 361 } 362 363 JNIEXPORT jobject JNICALL 364 Java_sun_lwawt_macosx_CTrayIcon_nativeGetIconLocation 365 (JNIEnv *env, jobject self, jlong model) { 366 jobject jpt = NULL; 367 368 JNF_COCOA_ENTER(env); 369 370 __block NSPoint pt = NSZeroPoint; 371 AWTTrayIcon *icon = jlong_to_ptr(model); 372 [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ 373 NSPoint loc = [icon getLocationOnScreen]; 374 pt = ConvertNSScreenPoint(env, loc); 375 }]; 376 377 jpt = NSToJavaPoint(env, pt); 378 379 JNF_COCOA_EXIT(env); 380 381 return jpt; 382 } |