/* * Class: sun_awt_windows_WChoicePeer * Method: addItems * Signature: ([Ljava/lang/String;I)V */ JNIEXPORT void JNICALL Java_sun_awt_windows_WChoicePeer_addItems(JNIEnv *env, jobject self, jobjectArray items, jint index) { TRY; JNI_CHECK_NULL_RETURN(items, "null items"); PDATA pData; jsize i; JNI_CHECK_PEER_RETURN(self); AwtChoice* c = (AwtChoice*)pData; int itemCount = env->GetArrayLength(items); if (itemCount > 0) { c->SendMessage(WM_SETREDRAW, (WPARAM)FALSE, 0); for (i=0; i<itemCount; i++) { jstring item = (jstring)env->GetObjectArrayElement(items, i); JNI_CHECK_NULL_RETURN(item, "null item"); c->SendMessage(CB_INSERTSTRING, index+i, JavaStringBuffer(env, item)); env->DeleteLocalRef(item); } c->SendMessage(WM_SETREDRAW, (WPARAM)TRUE, 0); InvalidateRect(c->GetHWnd(), NULL, TRUE); c->ResetDropDownHeight(); c->VerifyState(); } CATCH_BAD_ALLOC; }
void Java_sun_awt_pocketpc_PPCCheckboxPeer_setLabelNative(JNIEnv *env, jobject self, jstring label) { CHECK_PEER(self); AwtComponent* c = (AwtComponent*) env->GetIntField(self, WCachedIDs.PPCObjectPeer_pDataFID); c->SetText(JavaStringBuffer(env, label)); }
JNIEXPORT void JNICALL Java_sun_awt_pocketpc_PPCChoicePeer_addItem( JNIEnv *env, jobject self, jstring itemText, jint index ) { CHECK_PEER( self ); CHECK_NULL( itemText, "null itemText" ); AwtChoice *c = PDATA( AwtChoice, self ); c->SendMessage( CB_INSERTSTRING, index, JavaStringBuffer( env, itemText ) ); c->ResetDropDownHeight(); #ifdef DEBUG c->VerifyState(); #endif // DEBUG return; }
void AwtCheckbox::VerifyState() { if (AwtToolkit::GetInstance().VerifyComponents() == FALSE) { return; } if (m_callbacksEnabled == FALSE) { /* Component is not fully setup yet. */ return; } AwtComponent::VerifyState(); JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); if (env->EnsureLocalCapacity(2) < 0) { return; } jobject target = GetTarget(env); /* Check button style */ DWORD style = ::GetWindowLong(GetHWnd(), GWL_STYLE); DASSERT(style & BS_OWNERDRAW); /* Check label */ int len = ::GetWindowTextLength(GetHWnd()); LPTSTR peerStr; try { peerStr = new TCHAR[len+1]; } catch (std::bad_alloc&) { env->DeleteLocalRef(target); throw; } GetText(peerStr, len+1); jstring label = (jstring)env->GetObjectField(target, AwtCheckbox::labelID); DASSERT(_tcscmp(peerStr, JavaStringBuffer(env, label)) == 0); delete [] peerStr; env->DeleteLocalRef(target); env->DeleteLocalRef(label); }
void AwtLabel::_SetText(void *param) { JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); SetTextStruct *sts = (SetTextStruct *)param; jobject self = sts->label; jstring text = sts->text; AwtLabel *l = NULL; PDATA pData; JNI_CHECK_PEER_GOTO(self, ret); l = (AwtLabel *)pData; if (::IsWindow(l->GetHWnd())) { l->SetText(JavaStringBuffer(env, text)); VERIFY(::InvalidateRect(l->GetHWnd(), NULL, TRUE)); } ret: env->DeleteGlobalRef(self); env->DeleteGlobalRef(text); delete sts; }