< prev index next >

src/java.desktop/windows/native/libawt/windows/awt_MenuBar.cpp

Print this page




 139     awtMenuItem->MeasureItem(hDC, measureInfo);
 140 }
 141 
 142 int AwtMenuBar::CountItem(jobject menuBar)
 143 {
 144     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 145     jint nCount = env->CallIntMethod(menuBar, AwtMenuBar::getMenuCountMID);
 146     DASSERT(!safe_ExceptionOccurred(env));
 147 
 148     return nCount;
 149 }
 150 
 151 AwtMenuItem* AwtMenuBar::GetItem(jobject target, long index)
 152 {
 153     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 154     if (env->EnsureLocalCapacity(2) < 0) {
 155         return NULL;
 156     }
 157 
 158     jobject menu = env->CallObjectMethod(target, AwtMenuBar::getMenuMID,index);

 159     DASSERT(!safe_ExceptionOccurred(env));
 160 
 161     jobject menuItemPeer = GetPeerForTarget(env, menu);
 162     PDATA pData;
 163     JNI_CHECK_PEER_RETURN_NULL(menuItemPeer);

 164     AwtMenuItem* awtMenuItem = (AwtMenuItem*)pData;
 165 

 166     env->DeleteLocalRef(menu);
 167     env->DeleteLocalRef(menuItemPeer);
 168 
 169     return awtMenuItem;
 170 }
 171 
 172 void AwtMenuBar::DrawItem(DRAWITEMSTRUCT& drawInfo)
 173 {
 174     DASSERT(drawInfo.CtlType == ODT_MENU);
 175     AwtMenu::DrawItems(drawInfo);
 176 }
 177 
 178 void AwtMenuBar::MeasureItem(HDC hDC,
 179                              MEASUREITEMSTRUCT& measureInfo)
 180 {
 181     DASSERT(measureInfo.CtlType == ODT_MENU);
 182     AwtMenu::MeasureItem(hDC, measureInfo);
 183 }
 184 
 185 void AwtMenuBar::AddItem(AwtMenuItem* item)




 139     awtMenuItem->MeasureItem(hDC, measureInfo);
 140 }
 141 
 142 int AwtMenuBar::CountItem(jobject menuBar)
 143 {
 144     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 145     jint nCount = env->CallIntMethod(menuBar, AwtMenuBar::getMenuCountMID);
 146     DASSERT(!safe_ExceptionOccurred(env));
 147 
 148     return nCount;
 149 }
 150 
 151 AwtMenuItem* AwtMenuBar::GetItem(jobject target, long index)
 152 {
 153     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 154     if (env->EnsureLocalCapacity(2) < 0) {
 155         return NULL;
 156     }
 157 
 158     jobject menu = env->CallObjectMethod(target, AwtMenuBar::getMenuMID,index);
 159     if (!menu) return NULL; // menu item was removed concurrently
 160     DASSERT(!safe_ExceptionOccurred(env));
 161 
 162     jobject menuItemPeer = GetPeerForTarget(env, menu);
 163     PDATA pData;
 164     JNI_CHECK_PEER_GOTO(menuItemPeer, done);
 165 
 166     AwtMenuItem* awtMenuItem = (AwtMenuItem*)pData;
 167 
 168 done:
 169     env->DeleteLocalRef(menu);
 170     env->DeleteLocalRef(menuItemPeer);
 171 
 172     return awtMenuItem;
 173 }
 174 
 175 void AwtMenuBar::DrawItem(DRAWITEMSTRUCT& drawInfo)
 176 {
 177     DASSERT(drawInfo.CtlType == ODT_MENU);
 178     AwtMenu::DrawItems(drawInfo);
 179 }
 180 
 181 void AwtMenuBar::MeasureItem(HDC hDC,
 182                              MEASUREITEMSTRUCT& measureInfo)
 183 {
 184     DASSERT(measureInfo.CtlType == ODT_MENU);
 185     AwtMenu::MeasureItem(hDC, measureInfo);
 186 }
 187 
 188 void AwtMenuBar::AddItem(AwtMenuItem* item)


< prev index next >