< prev index next >
src/java.desktop/macosx/native/libawt_lwawt/awt/CTrayIcon.m
Print this page
rev 54094 : 8257853: Remove dependencies on JNF's JNI utility functions in AWT and 2D code
rev 54096 : 8259651: [macOS] Replace JNF_COCOA_ENTER/EXIT macros
rev 54097 : 8259869: [macOS] Remove desktop module dependencies on JNF Reference APIs
rev 54098 : 8260616: Removing remaining JNF dependencies in the java.desktop module
8259729: Missed JNFInstanceOf -> IsInstanceOf conversion
@@ -24,11 +24,10 @@
*/
#import "jni_util.h"
#import <AppKit/AppKit.h>
-#import <JavaNativeFoundation/JavaNativeFoundation.h>
#import "CTrayIcon.h"
#import "ThreadUtilities.h"
#include "GeomUtilities.h"
#import "LWCToolkit.h"
@@ -73,11 +72,11 @@
return self;
}
-(void) dealloc {
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
- JNFDeleteGlobalRef(env, peer);
+ (*env)->DeleteGlobalRef(env, peer);
[[NSStatusBar systemStatusBar] removeStatusItem: theItem];
// Its a bad idea to force the item to release our view by setting
// the item's view to nil: it can lead to a crash in some scenarios.
@@ -144,13 +143,13 @@
if ([AWTToolkit hasPreciseScrollingDeltas: event]) {
deltaX = [event scrollingDeltaX] * 0.1;
deltaY = [event scrollingDeltaY] * 0.1;
}
- static JNF_CLASS_CACHE(jc_NSEvent, "sun/lwawt/macosx/NSEvent");
- static JNF_CTOR_CACHE(jctor_NSEvent, jc_NSEvent, "(IIIIIIIIDDI)V");
- jobject jEvent = JNFNewObject(env, jctor_NSEvent,
+ DECLARE_CLASS(jc_NSEvent, "sun/lwawt/macosx/NSEvent");
+ DECLARE_METHOD(jctor_NSEvent, jc_NSEvent, "<init>", "(IIIIIIIIDDI)V");
+ jobject jEvent = (*env)->NewObject(env, jc_NSEvent, jctor_NSEvent,
[event type],
[event modifierFlags],
clickCount,
[event buttonNumber],
(jint)localPoint.x, (jint)localPoint.y,
@@ -158,13 +157,14 @@
deltaY,
deltaX,
[AWTToolkit scrollStateWithEvent: event]);
CHECK_NULL(jEvent);
- static JNF_CLASS_CACHE(jc_TrayIcon, "sun/lwawt/macosx/CTrayIcon");
- static JNF_MEMBER_CACHE(jm_handleMouseEvent, jc_TrayIcon, "handleMouseEvent", "(Lsun/lwawt/macosx/NSEvent;)V");
- JNFCallVoidMethod(env, peer, jm_handleMouseEvent, jEvent);
+ DECLARE_CLASS(jc_TrayIcon, "sun/lwawt/macosx/CTrayIcon");
+ DECLARE_METHOD(jm_handleMouseEvent, jc_TrayIcon, "handleMouseEvent", "(Lsun/lwawt/macosx/NSEvent;)V");
+ (*env)->CallVoidMethod(env, peer, jm_handleMouseEvent, jEvent);
+ CHECK_EXCEPTION();
(*env)->DeleteLocalRef(env, jEvent);
}
@end //AWTTrayIcon
//================================================
@@ -266,13 +266,14 @@
// don't show the menu on ctrl+click: it triggers ACTION event, like right click
if (([event modifierFlags] & NSControlKeyMask) == 0) {
//find CTrayIcon.getPopupMenuModel method and call it to get popup menu ptr.
JNIEnv *env = [ThreadUtilities getJNIEnv];
- static JNF_CLASS_CACHE(jc_CTrayIcon, "sun/lwawt/macosx/CTrayIcon");
- static JNF_MEMBER_CACHE(jm_getPopupMenuModel, jc_CTrayIcon, "getPopupMenuModel", "()J");
- jlong res = JNFCallLongMethod(env, trayIcon.peer, jm_getPopupMenuModel);
+ DECLARE_CLASS(jc_CTrayIcon, "sun/lwawt/macosx/CTrayIcon");
+ DECLARE_METHOD(jm_getPopupMenuModel, jc_CTrayIcon, "getPopupMenuModel", "()J");
+ jlong res = (*env)->CallLongMethod(env, trayIcon.peer, jm_getPopupMenuModel);
+ CHECK_EXCEPTION();
if (res != 0) {
CPopupMenu *cmenu = jlong_to_ptr(res);
NSMenu* menu = [cmenu menu];
[menu setDelegate:self];
@@ -329,18 +330,18 @@
*/
JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CTrayIcon_nativeCreate
(JNIEnv *env, jobject peer) {
__block AWTTrayIcon *trayIcon = nil;
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
- jobject thePeer = JNFNewGlobalRef(env, peer);
+ jobject thePeer = (*env)->NewGlobalRef(env, peer);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
trayIcon = [[AWTTrayIcon alloc] initWithPeer:thePeer];
}];
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
return ptr_to_jlong(trayIcon);
}
@@ -359,68 +360,68 @@
* Method: nativeSetToolTip
* Signature: (JLjava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CTrayIcon_nativeSetToolTip
(JNIEnv *env, jobject self, jlong model, jstring jtooltip) {
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
AWTTrayIcon *icon = jlong_to_ptr(model);
- NSString *tooltip = JNFJavaToNSString(env, jtooltip);
+ NSString *tooltip = JavaStringToNSString(env, jtooltip);
[ThreadUtilities performOnMainThreadWaiting:NO block:^(){
[icon setTooltip:tooltip];
}];
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
}
/*
* Class: sun_lwawt_macosx_CTrayIcon
* Method: setNativeImage
* Signature: (JJZ)V
*/
JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CTrayIcon_setNativeImage
(JNIEnv *env, jobject self, jlong model, jlong imagePtr, jboolean autosize) {
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
AWTTrayIcon *icon = jlong_to_ptr(model);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
[icon setImage:jlong_to_ptr(imagePtr) sizing:autosize];
}];
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
}
JNIEXPORT jobject JNICALL
Java_sun_lwawt_macosx_CTrayIcon_nativeGetIconLocation
(JNIEnv *env, jobject self, jlong model) {
jobject jpt = NULL;
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
__block NSPoint pt = NSZeroPoint;
AWTTrayIcon *icon = jlong_to_ptr(model);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
NSPoint loc = [icon getLocationOnScreen];
pt = ConvertNSScreenPoint(env, loc);
}];
jpt = NSToJavaPoint(env, pt);
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
return jpt;
}
JNIEXPORT void JNICALL
Java_sun_lwawt_macosx_CTrayIcon_nativeShowNotification
(JNIEnv *env, jobject self, jlong model, jobject jcaption, jobject jtext,
long nsimage) {
-JNF_COCOA_ENTER(env);
+JNI_COCOA_ENTER(env);
AWTTrayIcon *icon = jlong_to_ptr(model);
- NSString *caption = JNFJavaToNSString(env, jcaption);
- NSString *text = JNFJavaToNSString(env, jtext);
+ NSString *caption = JavaStringToNSString(env, jcaption);
+ NSString *text = JavaStringToNSString(env, jtext);
NSImage * contentImage = jlong_to_ptr(nsimage);
[ThreadUtilities performOnMainThreadWaiting:NO block:^(){
NSUserNotification *notification = [[NSUserNotification alloc] init];
notification.title = caption;
@@ -430,7 +431,7 @@
[[NSUserNotificationCenter defaultUserNotificationCenter]
deliverNotification:notification];
}];
-JNF_COCOA_EXIT(env);
+JNI_COCOA_EXIT(env);
}
< prev index next >