Changeset 52 for trunk/src


Ignore:
Timestamp:
Dec 26, 2007, 4:54:29 PM (18 years ago)
Author:
lpino
Message:

(structs.c) - JNI implementation of MENUITEM and OWNERITEM stuctures

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/plugins/org.eclipse.swt/Eclipse SWT PI/pm/library/structs.c

    r14 r52  
    13331333}
    13341334
     1335/* MENUITEM struct */
     1336
     1337void cacheMENUITEMFids(JNIEnv *env, jobject lpObject, PMENUITEM_FID_CACHE lpCache)
     1338{
     1339    if (lpCache->cached) return;
     1340    lpCache->clazz = (*env)->GetObjectClass(env, lpObject);
     1341    lpCache->iPosition = (*env)->GetFieldID(env, lpCache->clazz, "iPosition", "S");
     1342    lpCache->afStyle = (*env)->GetFieldID(env, lpCache->clazz, "afStyle", "S");
     1343    lpCache->afAttribute = (*env)->GetFieldID(env, lpCache->clazz, "afAttribute", "S");
     1344    lpCache->id = (*env)->GetFieldID(env, lpCache->clazz, "id", "S");
     1345    lpCache->hwndSubMenu = (*env)->GetFieldID(env, lpCache->clazz, "hwndSubMenu", "I");
     1346    lpCache->hItem = (*env)->GetFieldID(env, lpCache->clazz, "hItem", "I");
     1347    lpCache->cached = 1;
     1348}
     1349
     1350PMENUITEM getMENUITEMFields(JNIEnv *env, jobject lpObject, PMENUITEM lpStruct, PMENUITEM_FID_CACHE lpCache)
     1351{
     1352    if (!lpCache->cached) cacheMENUITEMFids(env, lpObject, lpCache);
     1353    lpStruct->iPosition = (*env)->GetShortField(env, lpObject, lpCache->iPosition);
     1354    lpStruct->afStyle = (*env)->GetShortField(env, lpObject, lpCache->afStyle);
     1355    lpStruct->afAttribute = (*env)->GetShortField(env, lpObject, lpCache->afAttribute);
     1356    lpStruct->id = (*env)->GetShortField(env, lpObject, lpCache->id);
     1357    lpStruct->hwndSubMenu = (*env)->GetIntField(env, lpObject, lpCache->hwndSubMenu);
     1358    lpStruct->hItem = (*env)->GetIntField(env, lpObject, lpCache->hItem);
     1359    return lpStruct;
     1360}
     1361
     1362void setMENUITEMFields(JNIEnv *env, jobject lpObject, PMENUITEM lpStruct, PMENUITEM_FID_CACHE lpCache)
     1363{
     1364    if (!lpCache->cached) cacheMENUITEMFids(env, lpObject, lpCache);
     1365    (*env)->SetShortField(env, lpObject, lpCache->iPosition, lpStruct->iPosition);
     1366    (*env)->SetShortField(env, lpObject, lpCache->afStyle, lpStruct->afStyle);
     1367    (*env)->SetShortField(env, lpObject, lpCache->afAttribute, lpStruct->afAttribute);
     1368    (*env)->SetShortField(env, lpObject, lpCache->id, lpStruct->id);
     1369    (*env)->SetIntField(env, lpObject, lpCache->hwndSubMenu, lpStruct->hwndSubMenu);
     1370    (*env)->SetIntField(env, lpObject, lpCache->hItem, lpStruct->hItem);
     1371}
     1372
     1373/* OWNERITEM struct */
     1374
     1375void cacheOWNERITEMFids(JNIEnv *env, jobject lpObject, POWNERITEM_FID_CACHE lpCache)
     1376{
     1377    if (lpCache->cached) return;
     1378    lpCache->clazz = (*env)->GetObjectClass(env, lpObject);
     1379    lpCache->hwnd = (*env)->GetFieldID(env, lpCache->clazz, "hwnd", "I");
     1380    lpCache->hps = (*env)->GetFieldID(env, lpCache->clazz, "hps", "I");
     1381    lpCache->fsState = (*env)->GetFieldID(env, lpCache->clazz, "fsState", "I");
     1382    lpCache->fsAttribute = (*env)->GetFieldID(env, lpCache->clazz, "fsAttribute", "I");
     1383    lpCache->fsStateOld = (*env)->GetFieldID(env, lpCache->clazz, "fsStateOld", "I");
     1384    lpCache->fsAttributeOld = (*env)->GetFieldID(env, lpCache->clazz, "fsAttributeOld", "I");
     1385    lpCache->rclItem = (*env)->GetFieldID(env, lpCache->clazz, "rclItem", "Lorg/eclipse/swt/internal/pm/RECTL;");
     1386    lpCache->idItem = (*env)->GetFieldID(env, lpCache->clazz, "idItem", "I");
     1387    lpCache->hItem = (*env)->GetFieldID(env, lpCache->clazz, "hItem", "I");
     1388    lpCache->cached = 1;
     1389}
     1390
     1391POWNERITEM getOWNERITEMFields(JNIEnv *env, jobject lpObject, POWNERITEM lpStruct, POWNERITEM_FID_CACHE lpCache)
     1392{
     1393    if (!lpCache->cached) cacheOWNERITEMFids(env, lpObject, lpCache);
     1394    lpStruct->hwnd = (*env)->GetIntField(env, lpObject, lpCache->hwnd);
     1395    lpStruct->hps = (*env)->GetIntField(env, lpObject, lpCache->hps);
     1396    lpStruct->fsState = (*env)->GetIntField(env, lpObject, lpCache->fsState);
     1397    lpStruct->fsAttribute = (*env)->GetIntField(env, lpObject, lpCache->fsAttribute);
     1398    lpStruct->fsStateOld = (*env)->GetIntField(env, lpObject, lpCache->fsStateOld);
     1399    lpStruct->fsAttributeOld = (*env)->GetIntField(env, lpObject, lpCache->fsAttributeOld);
     1400    {
     1401        jobject prclItem = (*env)->GetObjectField(env, lpObject, lpCache->rclItem);
     1402        if (prclItem){
     1403                if(&(lpStruct->rclItem)){
     1404                        getRECTLFields(env, prclItem, &(lpStruct->rclItem), &PGLOB(RECTLFc));
     1405                }
     1406        }
     1407    }
     1408    lpStruct->idItem = (*env)->GetIntField(env, lpObject, lpCache->idItem);
     1409    lpStruct->hItem = (*env)->GetIntField(env, lpObject, lpCache->hItem);
     1410    return lpStruct;
     1411}
     1412
     1413void setOWNERITEMFields(JNIEnv *env, jobject lpObject, POWNERITEM lpStruct, POWNERITEM_FID_CACHE lpCache)
     1414{
     1415    if (!lpCache->cached) cacheOWNERITEMFids(env, lpObject, lpCache);
     1416    (*env)->SetIntField(env, lpObject, lpCache->hwnd, lpStruct->hwnd);
     1417    (*env)->SetIntField(env, lpObject, lpCache->hps, lpStruct->hps);
     1418    (*env)->SetIntField(env, lpObject, lpCache->fsState, lpStruct->fsState);
     1419    (*env)->SetIntField(env, lpObject, lpCache->fsAttribute, lpStruct->fsAttribute);
     1420    (*env)->SetIntField(env, lpObject, lpCache->fsStateOld, lpStruct->fsStateOld);
     1421    (*env)->SetIntField(env, lpObject, lpCache->fsAttributeOld, lpStruct->fsAttributeOld);
     1422    {
     1423        jobject prclItem = (*env)->GetObjectField(env, lpObject, lpCache->rclItem);
     1424        if (prclItem && &(lpStruct->rclItem))
     1425                setRECTLFields(env, prclItem, &(lpStruct->rclItem), &PGLOB(RECTLFc));
     1426    }
     1427    (*env)->SetIntField(env, lpObject, lpCache->idItem, lpStruct->idItem);
     1428    (*env)->SetIntField(env, lpObject, lpCache->hItem, lpStruct->hItem);
     1429}
     1430
    13351431/* FACENAMEDESC struct */
    13361432/*@@TODO (dmik): don't need, remove!
Note: See TracChangeset for help on using the changeset viewer.