350 GlassMenubar *menubar = (GlassMenubar *)jlong_to_ptr(jMenubarPtr); 351 GlassMenu *glassmenu = (GlassMenu *)jlong_to_ptr(jMenuPtr); 352 if ([menubar->menu indexOfItem: glassmenu->item] != -1) { 353 [menubar->menu removeItem:glassmenu->item]; 354 } 355 [[NSApp mainMenu] update]; 356 } 357 GLASS_POOL_EXIT; 358 GLASS_CHECK_EXCEPTION(env); 359 } 360 361 /* 362 * Class: com_sun_glass_ui_mac_MacMenuDelegate 363 * Method: _initIDs 364 * Signature: ()V 365 */ 366 JNIEXPORT void JNICALL Java_com_sun_glass_ui_mac_MacMenuDelegate__1initIDs 367 (JNIEnv *env, jclass jMenuDelegateClass) 368 { 369 jclass jCallbackClass = [GlassHelper ClassForName:"com.sun.glass.ui.MenuItem$Callback" withEnv:env]; 370 jclass jMenuClass = [GlassHelper ClassForName:"com.sun.glass.ui.Menu" withEnv:env]; 371 372 jMenuActionMethod = (*env)->GetMethodID(env, jCallbackClass, "action", "()V"); 373 if ((*env)->ExceptionCheck(env)) return; 374 jMenuValidateMethod = (*env)->GetMethodID(env, jCallbackClass, "validate", "()V"); 375 if ((*env)->ExceptionCheck(env)) return; 376 jMenuOpeningMethod = (*env)->GetMethodID(env, jMenuClass, "notifyMenuOpening", "()V"); 377 if ((*env)->ExceptionCheck(env)) return; 378 jMenuClosedMethod = (*env)->GetMethodID(env, jMenuClass, "notifyMenuClosed", "()V"); 379 if ((*env)->ExceptionCheck(env)) return; 380 jDelegateMenuField = (*env)->GetFieldID(env, jMenuDelegateClass, "menu", "Lcom/sun/glass/ui/Menu;"); 381 } 382 383 /* 384 * Class: com_sun_glass_ui_mac_MacMenuDelegate 385 * Method: _createMenu 386 * Signature: (Ljava/lang/String;Z)J 387 */ 388 JNIEXPORT jlong JNICALL Java_com_sun_glass_ui_mac_MacMenuDelegate__1createMenu 389 (JNIEnv *env, jobject jMenuDelegate, jstring jTitle, jboolean jEnabled) 390 { | 350 GlassMenubar *menubar = (GlassMenubar *)jlong_to_ptr(jMenubarPtr); 351 GlassMenu *glassmenu = (GlassMenu *)jlong_to_ptr(jMenuPtr); 352 if ([menubar->menu indexOfItem: glassmenu->item] != -1) { 353 [menubar->menu removeItem:glassmenu->item]; 354 } 355 [[NSApp mainMenu] update]; 356 } 357 GLASS_POOL_EXIT; 358 GLASS_CHECK_EXCEPTION(env); 359 } 360 361 /* 362 * Class: com_sun_glass_ui_mac_MacMenuDelegate 363 * Method: _initIDs 364 * Signature: ()V 365 */ 366 JNIEXPORT void JNICALL Java_com_sun_glass_ui_mac_MacMenuDelegate__1initIDs 367 (JNIEnv *env, jclass jMenuDelegateClass) 368 { 369 jclass jCallbackClass = [GlassHelper ClassForName:"com.sun.glass.ui.MenuItem$Callback" withEnv:env]; 370 if (!jCallbackClass) { 371 return; 372 } 373 jclass jMenuClass = [GlassHelper ClassForName:"com.sun.glass.ui.Menu" withEnv:env]; 374 if (!jMenuClass) { 375 return; 376 } 377 378 jMenuActionMethod = (*env)->GetMethodID(env, jCallbackClass, "action", "()V"); 379 if ((*env)->ExceptionCheck(env)) return; 380 jMenuValidateMethod = (*env)->GetMethodID(env, jCallbackClass, "validate", "()V"); 381 if ((*env)->ExceptionCheck(env)) return; 382 jMenuOpeningMethod = (*env)->GetMethodID(env, jMenuClass, "notifyMenuOpening", "()V"); 383 if ((*env)->ExceptionCheck(env)) return; 384 jMenuClosedMethod = (*env)->GetMethodID(env, jMenuClass, "notifyMenuClosed", "()V"); 385 if ((*env)->ExceptionCheck(env)) return; 386 jDelegateMenuField = (*env)->GetFieldID(env, jMenuDelegateClass, "menu", "Lcom/sun/glass/ui/Menu;"); 387 } 388 389 /* 390 * Class: com_sun_glass_ui_mac_MacMenuDelegate 391 * Method: _createMenu 392 * Signature: (Ljava/lang/String;Z)J 393 */ 394 JNIEXPORT jlong JNICALL Java_com_sun_glass_ui_mac_MacMenuDelegate__1createMenu 395 (JNIEnv *env, jobject jMenuDelegate, jstring jTitle, jboolean jEnabled) 396 { |