/* * client_data is MTextFieldPeer instance */ static void TextField_action(Widget w, XtPointer client_data, XmAnyCallbackStruct * s) { JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); ConvertEventTimeAndModifiers converted; awt_util_convertEventTimeAndModifiers(s->event, &converted); JNU_CallMethodByName(env, NULL, (jobject) client_data, "action", "(JI)V", converted.when, converted.modifiers); if ((*env)->ExceptionOccurred(env)) { (*env)->ExceptionDescribe(env); (*env)->ExceptionClear(env); } }
/* * client_data is MMenuItemPeer instance pointer */ static void MenuItem_selected(Widget w, XtPointer client_data, XmAnyCallbackStruct * s) { JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); jobject this = (jobject) client_data; ConvertEventTimeAndModifiers converted; awt_util_convertEventTimeAndModifiers(s->event, &converted); if ((*env)->GetBooleanField(env, this, mMenuItemPeerIDs.isCheckbox)) { jboolean state; struct MenuItemData *mdata; mdata = (struct MenuItemData *) JNU_GetLongFieldAsPtr(env, this, mMenuItemPeerIDs.pData); if (mdata != NULL) { XtVaGetValues(mdata->comp.widget, XmNset, &state, NULL); JNU_CallMethodByName(env, NULL, this ,"action" ,"(J*Z)V" ,converted.when, converted.modifiers, state); if ((*env)->ExceptionOccurred(env)) { (*env)->ExceptionDescribe(env); (*env)->ExceptionClear(env); } } } else { JNU_CallMethodByName(env, NULL, this, "action", "(JI)V", converted.when, converted.modifiers); if ((*env)->ExceptionOccurred(env)) { (*env)->ExceptionDescribe(env); (*env)->ExceptionClear(env); } } }