Exemple #1
0
/*
 * 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);
        }
    }
}