/*
 * 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);
}
예제 #3
0
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;
}