/* * Class: sun_awt_windows_WScrollPanePeer * Method: getOffset * Signature: (I)I */ JNIEXPORT jint JNICALL Java_sun_awt_windows_WScrollPanePeer_getOffset(JNIEnv *env, jobject self, jint orient) { TRY; DTRACE_PRINTLN2("%x: WScrollPanePeer.getOffset(%d)", self, orient); PDATA pData; JNI_CHECK_PEER_RETURN_NULL(self); AwtScrollPane* pane = (AwtScrollPane *)pData; pane->VerifyState(); int nBar = (orient == java_awt_Adjustable_HORIZONTAL) ? SB_HORZ : SB_VERT; return pane->GetScrollPos(nBar); CATCH_BAD_ALLOC_RET(0); }
/* * Class: sun_awt_windows_WScrollPanePeer * Method: getScrollChild * Signature: ()Ljava/awt/Component; */ JNIEXPORT jobject JNICALL Java_sun_awt_windows_WScrollPanePeer_getScrollChild(JNIEnv *env, jobject self) { TRY; DTRACE_PRINTLN1("%x: WScrollPanePeer.getScrollChild()", self); PDATA pData; JNI_CHECK_PEER_RETURN_NULL(self); jobject target = env->GetObjectField(self, AwtObject::targetID); jint ncomponents = (env)->GetIntField(target, AwtContainer::ncomponentsID); if (ncomponents == 0) { JNU_ThrowNullPointerException(env, "child is null"); return NULL; } jobjectArray components = (jobjectArray)(env)->GetObjectField(target, AwtContainer::componentID); return env->GetObjectArrayElement(components, 0); CATCH_BAD_ALLOC_RET(NULL); }
AwtMenuItem* AwtMenuItem::Create(jobject peer, jobject menuPeer) { JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); jobject target = NULL; AwtMenuItem* item = NULL; try { if (env->EnsureLocalCapacity(1) < 0) { return NULL; } PDATA pData; JNI_CHECK_PEER_RETURN_NULL(menuPeer); /* target is a java.awt.MenuItem */ target = env->GetObjectField(peer, AwtObject::targetID); AwtMenu* menu = (AwtMenu *)pData; item = new AwtMenuItem(); jboolean isCheckbox = (jboolean)env->GetBooleanField(peer, AwtMenuItem::isCheckboxID); if (isCheckbox) { item->SetCheckbox(); } item->LinkObjects(env, peer); item->SetMenuContainer(menu); item->SetNewID(); menu->AddItem(item); } catch (...) { env->DeleteLocalRef(target); throw; } env->DeleteLocalRef(target); return item; }